检测图像中是否存在小细节

时间:2015-02-09 16:00:01

标签: image algorithm image-processing

我希望检测图像中包含相对大量细节的区域,但同样我需要忽略强边缘。例如,我想(大致)确定位于建筑物上的海报上的小文本区域,但我也想忽略建筑本身的强边缘。

我想我可能正在寻找特定的频段,所以我想到的方法包括:手动调整卷积内核直到我达到我需要的水平,使用特定的DCT系数,在方向上应用直方图过滤响应。但也许我错过了一些更明显的东西?

要回答下面评论中的问题,我将在Matlab中进行开发

我愿意接受有关如何实现这一目标的任何建议 - 谢谢!

3 个答案:

答案 0 :(得分:3)

这是不科学的,但也许并不坏让人们说话。我从这张图片开始。

enter image description here

并使用优秀的免费ImageMagick将其划分为400x400像素的瓷砖,如下所示:

convert -crop 400x400 cinema.jpg tile%d.jpg 

现在我测量每个图块的熵,并通过增加熵进行排序:

for f in tile*.jpg; do
   convert $f -print '%[entropy] %f\n' null:
done | sort -n

我得到了这个outoput:

0.142574 tile0.jpg
0.316096 tile15.jpg
0.412495 tile9.jpg
0.482801 tile5.jpg
0.515268 tile4.jpg
0.534078 tile18.jpg
0.613911 tile12.jpg
0.629857 tile14.jpg
0.636475 tile11.jpg
0.689776 tile17.jpg
0.709307 tile10.jpg
0.710495 tile16.jpg
0.824499 tile6.jpg
0.826688 tile3.jpg
0.849991 tile8.jpg
0.851871 tile1.jpg
0.863232 tile13.jpg
0.917552 tile7.jpg
0.971176 tile2.jpg

所以,如果我查看最后3个(即熵最多的那些),我得到:

enter image description here enter image description here enter image description here

答案 1 :(得分:1)

你会发现极大稳定的极值区域(MSER)对此有用。您应该能够强制使用区域约束来过滤掉大型MSER,然后计算MSER密度,例如Mark在答案中将图像划分为图块。

答案 2 :(得分:1)

这个问题本身对于我这方面的非纸质回答而言过于宽泛。话虽这么说,我可以为你提供一些缩小问题的建议。

首先,转到Google Scholar并搜索您的工作所围绕的关键字。在您的情况下,其中一个可能是边缘检测

查看满足您需求的最新论文(不超过5年)。如果您没有找到任何内容,请展开搜索条件或尝试不同的条款。

如果您有更具体的信息,请编辑您的问题并告知我们。

永远记住将大问题分成较小的块,然后将它们分成更小的块,直到你有一盘美味,易于处理的叮咬。

编辑:从我收集的内容来看,您对边缘检测和特征选择算法感兴趣吗?以下是一些有用的链接,可能有用:

-MATLAB feature detection -MATLAB edge detection

另外,MATLAB edge detection write up这是扩展指南文档的一部分,有望为您提供足够的帮助,以便深入了解Matlab image processing toolbox。您的问题的具体答案的文档。