我有以下图像 result.png ,每个矩形都绘制了Countours:
在下一步中,我试图仅提取这些矩形的内部部分以获得具有集中数字(2,0,1,8)的图像。我使用的代码如下:
import cv2
BLACK_THRESHOLD = 200
THIN_THRESHOLD = 10
im = cv2.imread('result.png', 0)
ret, thresh = cv2.threshold(im, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, 1, 3)
idx = 0
for cnt in contours:
idx += 1
x, y, w, h = cv2.boundingRect(cnt)
roi = im[y:y + h, x:x + w]
if h < THIN_THRESHOLD or w < THIN_THRESHOLD:
continue
cv2.imwrite(str(idx) + '.png', roi)
cv2.rectangle(im, (x, y), (x + w, y + h), (200, 0, 0), 2)
cv2.imshow('img', im)
cv2.waitKey(0)
它正在工作,但它根据如下所示创建的Countours(每行不同的图像)给出每个可能的裁剪图像:
它正在提取 18张图像,而我只想要在其中心有数字但没有任何噪点的图像。任何人都可以帮助我缩小这个提取过程吗?