【发布时间】:2018-05-31 01:33:05
【问题描述】:
我设法用在 Stack Overflow 上找到的 Python 代码完成了我需要的工作:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
labelnum, labelimg, contours, GoCs = cv2.connectedComponentsWithStats(gray)
for label in xrange(1, labelnum):
x,y,w,h,size = contours[label]
if size <= N:
img_white[y:y+h, x:x+w] = 0
cv2.imwrite("img_filter.png", img_white)
它通过访问轮廓元素设法去除小区域(小斑点和颗粒)。
我想用 C++ 来做这件事。可能吗?我找到了这个功能:
int connectedComponentsWithStats(InputArray image, OutputArray labels, OutputArray stats, OutputArray centroids, int connectivity=8, int ltype=CV_32S)
但我看不到如何访问轮廓元素。 有什么建议吗?
【问题讨论】:
-
你最好给出你的测试图像。