Cloud Vision будет легче распознавать текст на изображении, если фото будет пороговым.
Я использую код, который я написал ниже, и это в значительной степени решает мою проблему.
import cv2
from PIL import Image, ImageFilter
def threshold():
img = cv2.imread("menu.jpg") #path of unmodified image.
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh1 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
#ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) #You can change values for best result.
cv2.imshow('Otsu', thresh1)
cv2.imwrite("test.png",thresh1) #saving path of the modified version of the photograph.
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()
threshold()