【发布时间】:2016-10-12 17:43:13
【问题描述】:
我有一个项目,我必须从图像中检测孟加拉语数字。我决定做一个实验,比如带空格和不带空格的数字。我的 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 个数字没有相互接触。那么为什么会有这样的输出呢?
带空格:
没有空格:
【问题讨论】:
-
您能否上传生成的图像,其中矩形与输入图像重叠。
标签: python opencv ocr opencv-contour