使用OpenCV在小而嘈杂的图像上进行特征检测

PFl*_*ans 3 opencv image-processing image-recognition edge-detection noise-reduction

我有一个非常嘈杂的图像,小(相关部分是381×314),功能非常微妙.

相关领域

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

任务是使用Python计算相关区域内的白点数,但我很高兴只是隔离区域内较亮的点和线并删除背景结构(在这种情况下是单元格).

使用OpenCV我尝试过直方图均衡(破坏细节),找到轮廓(不起作用),使用颜色范围(颜色太近了?)

有关其他事情的任何建议或指导可以尝试吗?我不相信我可以得到更高的res图像,所以这个任务可能与相当困难的来源?

Nik*_*iki 12

(这不是Python的答案,因为我从未使用过Python/OpenCV绑定.下面的图像是使用Mathematica创建的.但我只是使用了基本的图像处理函数,所以你应该能够自己在Python中实现它.)

图像处理中一个非常普遍的"技巧"是考虑删除你正在寻找的东西,而不是实际寻找它.因为经常删除它比找到它容易得多.例如,您可以应用形态开口,中值滤波器高斯滤波器:

在此输入图像描述

这些过滤器可有效去除小于过滤器尺寸的细节,并使较粗糙的结构或多或少保持不变.所以你可以从原始图像中获取差异并寻找局部最大值:

在此输入图像描述

(你必须使用不同的"细节去除过滤器"和过滤器大小.没有办法只用一个图像来判断哪一个效果最好.)