Как получить строку Base64 с помощью Django REST API - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь получить изображение в виде строки base64 через Django REST API и использовать его в моей программе распознавания изображений OpenCV

Я написал программу, но, похоже, она не работает вообще

views.py

class ImageRecog(generics.ListAPIView):  # API to query uploads
serializer_class = ImageDBSerializer
lookup_field = 'image_tags'

def get_queryset(self):

    image_encoded = self.request.query_params.get('image')

    fh = open("imageToSave.png", "wb")
    fh.write(image_encoded.decode('base64'))
    fh.close()
    # location of the photo we want to test out
    original = cv2.imread(r"imageToSave.png")
    sift = cv2.xfeatures2d.SIFT_create()
    kp_1, desc_1 = sift.detectAndCompute(original, None)
    index_params = dict(algorithm=0, trees=5)
    search_params = dict()
    flann = cv2.FlannBasedMatcher(index_params, search_params)
    # Load all the images
    all_images_to_compare = []
    titles = []
    # location of all the photos
    # image store directory
    for f in glob.iglob(r"C:\Users\User\Desktop\django\StudyHome\studybuddy\*"): #directory of where images gets gaved from database
        image = cv2.imread(f)
        titles.append(f)
        all_images_to_compare.append(image)

    # 1) Check if 2 images are equals
    for image_to_compare, title in zip(all_images_to_compare, titles):
        if original.shape == image_to_compare.shape:
            difference = cv2.subtract(original, image_to_compare)
            b, g, r = cv2.split(difference)
            if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0:
                print("Similarity: 100% (equal size and channels)")
                print("Title: " + title)
                return ImageDB.objects.filter(title__iexact=title)
                break

urls.py

url('^image/$', ImageRecog.as_view()),  # Upload search Api

serializers.py

class ImageDBSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
    model = ImageDB
    fields = ('image_id', 'image', 'image_tags',)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...