减少/增强图像中的已知特征

Reducing / Enhancing known features in an image

我是微生物学学生,刚接触计算机视觉,非常感谢您的帮助。

这个问题涉及我正在尝试分析的显微镜图像。我要实现的目标是对图像中的细菌进行计数,但我需要先对图像进行预处理,以增强荧光不明亮的任何细菌。我考虑过使用几种不同的技术,例如增强对比度或锐化图像,但这并不是我所需要的。

我想在 RBG 尺度上将噪声(黑色空间)降低到 0,并增强绿色空间。我最初是在 OpenCV 中编写一个 for 循环,使用阈值限制来更改每个像素,但我知道有更好的方法。

这是我在照相馆中对原始图像与我想要的图像进行比较的示例。

Original Image and enhanced Image。

我需要学习在 python 环境中执行此操作,以便我可以自动执行此过程。正如我所说,我是新手,但我熟悉 python 的 OpenCV、mahotas、numpy 等,所以我并不完全依赖于特定的包。我对这些技术也很陌生,所以即使你只是指出正确的方向,我也愿意接受。

谢谢!

您可以看看 histogram equalization. This would emphasize the green and reduce the black range. There is an OpenCV tutorial here. Afterwards you can experiment with different thresholding mechanisms 哪个细菌产量最高。

使用 TensorFlow:

  1. 使用存储在随附文本文件中的细菌图像及其位置创建您自己的数据集(数据集越大越好)。
  2. 创建正负图像集
  3. 使用您的图像更新默认的 TensorFlow 示例
  4. 确保你有一堆卷积层。
  5. 训练和测试。

TensorFlow 非常适合此类任务,您无需担心不同的强度级别。

我最初尝试了直方图均衡化,但没有得到想要的结果。所以我使用自适应阈值使用均值过滤器:

th = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 3, 2)

然后我应用了中值过滤器:

median = cv2.medianBlur(th, 5)

最后我用椭圆核应用了形态闭合

k1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
dilate = cv2.morphologyEx(median, cv2.MORPH_CLOSE, k1, 3)

THIS PAGE 将帮助您根据需要修改此结果。