Форум сайта python.su
Код открывает картинку с пк и разделяет символы друг от друга рамкой. Теперь как сделать, чтобы программа мне сказала, что это за цифра?
import sys import numpy as np import cv2 im = cv2.imread('2.png') im3 = im.copy() gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray,(5,5),0) thresh = cv2.adaptiveThreshold(blur,255,1,1,11,2) ################# Now finding Contours ################### contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) samples = np.empty((0,100)) responses = [] keys = [i for i in range(48,58)] for cnt in contours: if cv2.contourArea(cnt)>50: [x,y,w,h] = cv2.boundingRect(cnt) if h>28: cv2.rectangle(im,(x,y),(x+w,y+h),(0,0,255),2) roi = thresh[y:y+h,x:x+w] roismall = cv2.resize(roi,(10,10)) cv2.imshow('norm',im) key = cv2.waitKey(0) if key == 27: # (escape to quit) sys.exit() elif key in keys: responses.append(int(chr(key))) sample = roismall.reshape((1,100)) samples = np.append(samples,sample,0) responses = np.array(responses,np.float32) responses = responses.reshape((responses.size,1)) #print "training complete" np.savetxt('generalsamples.data',samples) np.savetxt('generalresponses.data',responses)
Прикреплённый файлы:
Снимок.PNG (10,7 KБ)
Офлайн
самый просто вариант скормить рамку с цифрой какомунить OCR, например PyTesseract
https://micropyramid.com/blog/extract-text-with-ocr-for-image-files-in-python-using-pytesseract/
[code python][/code]
Офлайн
Хорошо, попробую
Офлайн
PEHDOM
самый просто вариант скормить рамку с цифрой какомунить OCR, например PyTesseracthttps://micropyramid.com/blog/extract-text-with-ocr-for-image-files-in-python-using-pytesseract/
from PIL import Image import pytesseract my_image = '4.jpg' pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' text = pytesseract.image_to_string(my_image, lang='eng', config='--psm 6 -c tessedit_char_whitelist=0123456789') print('Это цифра',text)
Отредактировано Mutant (Июнь 17, 2020 15:59:08)
Прикреплённый файлы:
Снимок.PNG (10,5 KБ)
Офлайн
Почему ничего не выводит код?Есть подозрение, что просто ничего не распозналось. Разные картинки с цифрами пробовал?
есть теория, что png не катитСовсем недавно делал нечто подобное, как раз png использовал.
Отредактировано Striver (Июнь 17, 2020 16:01:12)
Офлайн
StriverУже решил проблему. Выше другой вопрос)
Офлайн
Mutantнасколько я знаю OCR работают не так, кокнертно в 4-й версии тесеракта используются рекуррентные нейронные сети, и если вы хотите добавить каенить свои символы/шрифты то тесеракт нужно тренировать
она же сравнивает мои (нарисованные или скачанные) цифры с образами, которые уже есть в библиотеке. А как можно сделать (желательно на представленном коде) так, чтобы я создал образы цифр и по ним сравнивал с нарисованными например?
[code python][/code]
Офлайн
PEHDOMЗнаете, то что вы говорите, для меня малопонятно. Может я попроще объясню. У меня должна быть например картинка цифры 1 (эталон) и потом я рисую (в паинте) цифру 1. Затем мне нужно сравнить эти два изображения цифры 1 и получить разницу пикселей
Офлайн
Mutant
Mutant
Теперь как сделать, чтобы программа мне сказала, что это за цифра?
Mutant
Может я попроще объясню. Мне нужно сравнить эти два изображения цифры 1 и получить разницу пикселей
Офлайн
FishHookМне нужно найти процентное соотношение 2 картинок (то есть на сколько одна идентична другой)
Mutant
Офлайн