from django.shortcuts import render from rest_framework.views import APIView from rest_framework.parsers import MultiPartParser from rest_framework.response import Response from rest_framework import status import easyocr import cv2 import pytesseract from pytesseract import Output import json def UploaderView(request): return render(request, 'sumasen_easyocr/index.html') class FileUploadView(APIView): parser_classes = [MultiPartParser,] def post(self, request, format='jpg'): ocr = request.POST.get("engine", None) up_file = request.FILES['file'] destination = open('/Users/mohamednouffer/workspace/akira_san/sumasen_ocr/sumasen_easyocr/uploaded' + up_file.name, 'wb+') #destination = open('/home/sumasen/django_easyocr_api/orc_api/sumasen_easyocr/uploaded' + up_file.name, 'wb+') for chunk in up_file.chunks(): destination.write(chunk) destination.close() if ocr == 'EasyOCR': try: reader = easyocr.Reader(['ja','en']) #result = reader.readtext('/home/sumasen/django_easyocr_api/orc_api/sumasen_easyocr/uploaded' + up_file.name) result = reader.readtext('/Users/mohamednouffer/workspace/akira_san/sumasen_ocr/sumasen_easyocr/uploaded' + up_file.name) #print('@@@@@@@@@@') #print(result) #print('@@@@@@@@@@') return Response(result, status.HTTP_201_CREATED) #return Response({''}, status.HTTP_201_CREATED) except Exception as e: print(e) return Response({'Error': "Error occured"}, status.HTTP_400_BAD_REQUEST) else: try: img = cv2.imread('/Users/mohamednouffer/workspace/akira_san/sumasen_ocr/sumasen_easyocr/uploaded' + up_file.name) custom_config = r'--oem 3 --psm 6' res = pytesseract.image_to_data(img, lang='jpn', config=custom_config, output_type=Output.DICT) app_json = json.dumps(res) return Response(app_json, status.HTTP_201_CREATED) except Exception as e: print(e) return Response({'Error': "Error occured"}, status.HTTP_400_BAD_REQUEST)