opencv - 使用 OpenCV 对小而嘈杂的图像进行特征检测

标签 opencv image-processing image-recognition edge-detection noise-reduction

我的图像非常嘈杂、很小(相关部分是 381∼∼∼314),而且特征非常微妙。

relevant area

源图像和裁剪后的相关区域也在这里:http://imgur.com/a/O8Zc2

任务是使用 Python 计算相关区域内白色点的数量,但我很乐意只隔离区域内较亮的点和线并移除背景结构(在本例中为单元格)。

使用 OpenCV,我尝试了直方图均衡化(破坏了细节)、寻找轮廓(没有用)、使用颜色范围(颜色太接近?)

对于其他可以尝试的事情有什么建议或指导吗?我不相信我可以获得更高分辨率的图像,那么使用相当困难的来源是否可以完成这项任务?

最佳答案

(这不是 Python 的答案,因为我从未使用过 Python/OpenCV 绑定(bind)。下面的图像是使用 Mathematica 创建的。但我只使用了基本的图像处理函数,因此您应该能够在自己学 Python。)

图像处理中一个非常普遍的“技巧”是考虑删除您正在寻找的东西,而不是实际寻找它。因为通常,删除它比找到它容易得多。例如,您可以应用 morphological opening , median filtergaussian filter对它:

enter image description here

这些过滤器有效地去除了小于过滤器大小的细节,并或多或少地保留了较粗糙的结构。所以你可以只取原始图像的不同并寻找局部最大值:

enter image description here

(您必须尝试使用​​不同的“细节去除过滤器”和过滤器大小。仅凭一张图像无法判断哪个效果最好。)

关于opencv - 使用 OpenCV 对小而嘈杂的图像进行特征检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293416/

相关文章:

python - OpenCV/Python : Error in cv2. add() 向图像添加数字

python - 血管抽出来了,怎么提亮呢?

python - 随时随地重新训练 Tensorflow 模型

android - 实时图像处理+模式匹配——openCV替代方案

java - 试图让 OpenCV 在 Java 中工作,示例代码将 2 张照片拼接在一起

python - 如何从图像中的对象大小(以像素为单位)根据英寸厘米等测量值来测量现实世界中的对象大小?

python - 用gstreamer接收RTP流

image-processing - 填充二进制对象内的孔

image - OpenCV模板匹配

machine-learning - 使用 Tensorflow 和 inception V3 预训练模型训练高清图像