OpenCV-是否可以在图像中为每个灰度值分离轮廓?

时间:2019-01-21 20:54:44

标签: c++ opencv opencv-contour

我是OpenCV的新手,目前正在学习如何使用轮廓从图像中提取数字。我指的图像可以在这里找到:

enter image description here

我遇到的问题是数字和线/点的灰度值可能非常相似,因此它们的轮廓被合并了。我该如何解决?

到目前为止,我的代码如下:

img = cv2.imread(filename=('data/6737,K.png'))
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY);
thresh = cv2.adaptiveThreshold(imgray,255,
                cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, 
                cv2.CHAIN_APPROX_SIMPLE)

如果OpenCV具有允许按灰度值分隔轮廓的选项,则可能可以提取单个数字。也许还有我没有尝试过的另一种解决方案?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

通过将总灰度值较低的列中的像素设置为背景色(即,切断水平线)来解决。谢谢!