如何使用OpenCV检测图像中毛发轮廓并标记端点?代码运行不符预期
毛发端点检测问题

左侧为原始图像,右侧为预期结果。我想要检测图像中的毛发并标记每根毛发的端点,但程序实际运行结果不符合预期。以下是我的代码及运行结果。

import cv2 image = cv2.imread("images/3.png", cv2.COLOR_BGR2GRAY) t, th = cv2.threshold(image, 75, 255, cv2.THRESH_BINARY_INV) k1 = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) x0 = cv2.erode(th, k1, iterations=2) contours, hierarchy = cv2.findContours(x0, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) for i in range(len(contours)): area = cv2.contourArea(contours[i]) M = cv2.moments(contours[i]) cx = int(M['m10'] / M['m00']) cy = int(M['m01'] / M['m00']) cv2.drawContours(image, contours, i, (0,255,0), 1, 8) cv2.drawMarker(image, (cx, cy),(0,0,255), 1,4,1) cv2.imshow("src", image) cv2.waitKey()
内容的提问来源于stack exchange,提问作者yangshanshi
相关产品推荐
相关产品推荐

