You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:31:02