【发布时间】:2020-05-08 12:48:51
【问题描述】:
我正在尝试使用简单的OpenCV 轮廓方法从下图中提取数字,但我在轮廓上得到重叠的边界框
cv2.RETR_EXTERNAL 应该只返回层次结构中的外部轮廓,但从下面的输出中可以看出它不起作用
代码:
from matplotlib import pyplot as plt
import cv2
img = cv2.imread('image.png', 0)
_, contours, _ = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
imgRGB = cv2.cvtColor(img.copy(), cv2.COLOR_GRAY2RGB)
for c in contours:
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(imgRGB, (x, y), (x+w, y+h), (0,255,0), 2)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(imgRGB, cmap='gray')
要求:
opencv-python==3.4.5.20
matplotlib==3.1.2
【问题讨论】:
标签: python python-3.x image opencv image-processing