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

如何用numpy/OpenCV检测医学超声图像中的探头朝向?

医学超声图像探头朝向检测求助

我有一组医学超声图像数据集,需要检测探头的朝向(已用红色标注),示例图像如下:
超声图像示例1
超声图像示例2
超声图像示例3

我尝试了多种方法都没成功,效果差距明显,现在除了训练简易神经网络之外,已经没有其他思路了,恳请大家提供帮助!

已尝试的方法

  • 使用numpy,从图像顶部和底部取两个水平切片,计算黑色像素与其他(白色、灰色)像素的比例。若连续两个切片黑色占比更高,则探头尖端朝向该侧,示例代码如下:
blacks = np.sum(dcm1[:, int(0.25*dcm1.shape[1]), :] == 0)
grays = np.sum(dcm1[:, int(0.25*dcm1.shape[1])] > 150)
ratio = blacks/grays
  • 尝试将图像通过自适应阈值算法和Canny滤波器处理,计算图像上下半部分的黑白像素比例,认为黑色占比更高的一侧对应探头尖端,但该方法准确性不足。
    自适应阈值与Canny处理结果

  • 尝试检测图像中的黑色三角形,思路为黑色三角形尖端始终朝向与探头相反的方向,但该方法甚至无法识别黑色三角形,示例代码如下:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
i = 0
# list for storing names of shapes
for contour in contours:
    if i == 0:
        i = 1
        continue
    # cv2.approxPloyDP() function to approximate the shape
    approx = cv2.approxPolyDP(
    contour, 0.01 * cv2.arcLength(contour, True), True)
    cv2.drawContours(img, [contour], 0, (0, 0, 255), 5)

轮廓检测结果

内容的提问来源于stack exchange,提问作者cyril

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:50:29