Найти - Пользователи
Полная версия: Распознавание цифр (нейронные сети)
Начало » Python для новичков » Распознавание цифр (нейронные сети)
1 2
Mutant
Код открывает картинку с пк и разделяет символы друг от друга рамкой. Теперь как сделать, чтобы программа мне сказала, что это за цифра?
 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)
PEHDOM
самый просто вариант скормить рамку с цифрой какомунить OCR, например PyTesseract
https://micropyramid.com/blog/extract-text-with-ocr-for-image-files-in-python-using-pytesseract/
Mutant
Хорошо, попробую
Mutant
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)
Striver
Почему ничего не выводит код?
Есть подозрение, что просто ничего не распозналось. Разные картинки с цифрами пробовал?

есть теория, что png не катит
Совсем недавно делал нечто подобное, как раз png использовал.

Попробуй без Питона просто самой программе tesseract скорми картинку, выдаст что-то или нет?

Опачки, пока писал ответ, вопрос уже поменялся…
Mutant
Striver
Уже решил проблему. Выше другой вопрос)
PEHDOM
Mutant
она же сравнивает мои (нарисованные или скачанные) цифры с образами, которые уже есть в библиотеке. А как можно сделать (желательно на представленном коде) так, чтобы я создал образы цифр и по ним сравнивал с нарисованными например?
насколько я знаю OCR работают не так, кокнертно в 4-й версии тесеракта используются рекуррентные нейронные сети, и если вы хотите добавить каенить свои символы/шрифты то тесеракт нужно тренировать
https://github.com/tesseract-ocr/tessdoc/blob/master/TrainingTesseract-4.00.md
Mutant
PEHDOM
Знаете, то что вы говорите, для меня малопонятно. Может я попроще объясню. У меня должна быть например картинка цифры 1 (эталон) и потом я рисую (в паинте) цифру 1. Затем мне нужно сравнить эти два изображения цифры 1 и получить разницу пикселей
FishHook
Mutant
Mutant
Теперь как сделать, чтобы программа мне сказала, что это за цифра?
Mutant
Может я попроще объясню. Мне нужно сравнить эти два изображения цифры 1 и получить разницу пикселей


Внимание, вопрос! На кой хрен для получения разницы пикселей надо знать, что именно изображено на картинке?
Mutant
FishHook
Mutant
Мне нужно найти процентное соотношение 2 картинок (то есть на сколько одна идентична другой)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB