检测灰度图像中黑色区域的存在

时间:2019-03-24 08:13:56

标签: python opencv image-processing machine-learning computer-vision

我的目标很模糊,因此我没有可重复的代码。

我想开发一种网络,用某些类型的灰度图像训练该网络,以检测超出一定灰度强度阈值的区域。

我应该如何进一步进行?我需要一个神经网络吗?

下面是一些示例图像。最左边的是它的外观,中间的是发现有一些黑线(不是完全黑,但在灰度强度的某个阈值之上),而最右端的是是我期望代码输出的结果。

PS当在CT扫描中检测到裂缝时会特别感兴趣,该裂缝在其他灰度背景中显示为深黑色斑点/线条

enter image description here

1 个答案:

答案 0 :(得分:2)

这很简单,您绝对不需要神经网络来解决这个问题。如果您正在处理灰度图像,并且知道您感兴趣的强度阈值(例如,允许的强度值最大为3),则只需执行简单的阈值操作即可识别黑色区域。

这可能也可以在您的ct扫描应用程序上使用,前提是这些“裂缝”的强度总是很低。

例如对于在示例图像中应用了“裂缝”的ct图像,将这些裂缝阈值设置得很好(您只会得到一些背景噪声/伪像)。请参见以下OpenCV片段:

import numpy as np
import cv2

# Load an color image in grayscale
img = cv2.imread('chest-ct-lungs.jpg',0)
ret,thresh = cv2.threshold(img,3,255,cv2.THRESH_BINARY)
cv2.imwrite('output.png',thresh)

输入:

enter image description here

原始图片来源:www.radiologyinfo.org

输出:

enter image description here

如您所见,这实际上只是三行代码,不要总是假设您必须使用神经网络来处理所有事情,有时最好只是解决图像处理问题老式的方式”。尤其是如果问题很简单。