使用opencv python

时间:2016-10-12 17:43:14

标签: python opencv ocr opencv-contour

我有一个项目,我必须从图像中检测孟加拉语数字。我决定做一个像空格一样没有空格的实验。我的python程序可以使用空格图像检测所有数字。

当我给出没有空格的图像时出现了问题。它不能像前一个那样顺利地削减数字。

这是我的代码

import cv2

image = cv2.imread("number.png")
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 
_,thresh = cv2.threshold(gray,70,255,cv2.THRESH_BINARY_INV) 
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
dilated = cv2.dilate(thresh,kernel,iterations = 0) 
_,contours, hierarchy = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) 

i=5
for contour in contours:

    [x,y,w,h] = cv2.boundingRect(contour)

    cv2.imwrite(str(i)+".jpg",image[y:y+h,x:x+h])
    i=i+1

起初我使用扩张来寻找轮廓但是没有空间图像它没有用于数字。然后我直接使用thresh输出,之后我获得了大部分数字,但我无法完美地剪切它们,因为轮廓区域检测数字与其他数字的某些部分。虽然它在第二张图像中没有空间,但仍有2个数字没有互相接触。那么为什么输出这样呢?

有空格:

with space

没有空格:

without space

1 个答案:

答案 0 :(得分:0)

不幸的是我没有注意到当我切割矩形部分时,我添加了x:x + h而不是x:x + w。这是主要问题。修改后程序运行正常。遗憾。