#opencv #computer-vision #python-tesseract
#opencv #компьютерное зрение #python-тессеракт #python-tesseract
Вопрос:
Я пытаюсь прочитать рукописную форму, которая содержит ввод в штучной упаковке.
Я запустил tesseract на изображении, но получаю странные результаты. В моем понимании, я полагаю, лучшее, что можно сделать, это обнаружить ограничивающую рамку и вычеркнуть ее из изображения. Каков наилучший способ обнаружить поле (полубокс вокруг символа)? Я пытался cv2.HoughLines()
, но безрезультатно.
Я новичок в OpenCV. Будет действительно полезно, если кто-нибудь сможет мне здесь помочь.
Ответ №1:
Спасибо за вашу идею. Я только что понял, что, вероятно, я могу посмотреть на подсчет вертикальных пикселей и превышение определенного порога
def get_pixel_count_in_col(img,col):
count=0
for j in range(img.shape[0]):
if(img[j,col]<255):
count=count 1
return count
def cleanup_img(img):
foundlines=[]
for i in range(img.shape[1]):
if(get_pixel_count_in_col(img,i)>img.shape[0]*0.7):
foundlines.append(i)
if(get_pixel_count_in_col(img,i-1)>img.shape[0]*0.25):
foundlines.append(i-1)
if(get_pixel_count_in_col(img,i 1)>img.shape[0]*0.25):
foundlines.append(i 1)
return np.delete(img,foundlines,1)
Результирующее изображение имеет больше смысла. Но есть ли какой-либо другой простой способ сделать это?
Ответ №2:
Кажется, что ваш формат ввода довольно чистый и согласованный. Вы можете просто жестко запрограммировать ширину каждой рамки в пикселях и обрезать символы. Однако, если формат ввода не является фиксированным, мы можем расширить этот ответ, чтобы обработать и это (это было бы немного дороже), поэтому в качестве первой попытки мы бы просто использовали жесткое кодирование ширины рамок в пикселях.
def get_image_chunks(img, size):
chunks = []
# To remove black borders
padding = 2
for i in xrange(0, img.shape[1], size):
col_start = i padding
col_end = i size - padding
# Slicing the numpy array.
chunks.append(img[:-padding, col_start:col_end])
return chunks
img = cv2.imread("/Users/anmoluppal/Downloads/GLUmJ.jpg", 0)
chunks = get_image_chunks(img, 42)