如何用numpy/OpenCV检测医学超声图像中的探头朝向?
医学超声图像探头朝向检测求助
我有一组医学超声图像数据集,需要检测探头的朝向(已用红色标注),示例图像如下:


我尝试了多种方法都没成功,效果差距明显,现在除了训练简易神经网络之外,已经没有其他思路了,恳请大家提供帮助!
已尝试的方法
- 使用
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滤波器处理,计算图像上下半部分的黑白像素比例,认为黑色占比更高的一侧对应探头尖端,但该方法准确性不足。

尝试检测图像中的黑色三角形,思路为黑色三角形尖端始终朝向与探头相反的方向,但该方法甚至无法识别黑色三角形,示例代码如下:
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
相关产品推荐
相关产品推荐

