我是OpenCV的新手,目前正在学习如何使用轮廓从图像中提取数字。我指的图像可以在这里找到:
我遇到的问题是数字和线/点的灰度值可能非常相似,因此它们的轮廓被合并了。我该如何解决?
到目前为止,我的代码如下:
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具有允许按灰度值分隔轮廓的选项,则可能可以提取单个数字。也许还有我没有尝试过的另一种解决方案?
任何帮助将不胜感激。
答案 0 :(得分:0)
通过将总灰度值较低的列中的像素设置为背景色(即,切断水平线)来解决。谢谢!