我的目标很模糊,因此我没有可重复的代码。
我想开发一种网络,用某些类型的灰度图像训练该网络,以检测超出一定灰度强度阈值的区域。
我应该如何进一步进行?我需要一个神经网络吗?
下面是一些示例图像。最左边的是它的外观,中间的是发现有一些黑线(不是完全黑,但在灰度强度的某个阈值之上),而最右端的是是我期望代码输出的结果。
PS当在CT扫描中检测到裂缝时会特别感兴趣,该裂缝在其他灰度背景中显示为深黑色斑点/线条
答案 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)
输入:
原始图片来源:www.radiologyinfo.org
输出:
如您所见,这实际上只是三行代码,不要总是假设您必须使用神经网络来处理所有事情,有时最好只是解决图像处理问题老式的方式”。尤其是如果问题很简单。