我想检测图像中包含大量小细节的区域,但同样我需要忽略强边。例如,我想(大概)在建筑物上的海报上识别小文本的区域,但是我也想忽略建筑物本身的强边。
我想我可能在寻找特定的频带,所以我突然想到的方法包括:手动调整卷积核,直到达到我需要的程度,使用特定的DCT系数,对方向滤波器响应应用直方图但也许我遗漏了更明显的东西?
为了回答下面评论中的问题,我在Matlab中开发
我愿意接受任何关于如何做到这一点的建议-谢谢!
最佳答案
这里有一些不科学的东西,但也许让人们说话也不错。我从这张照片开始。
使用优秀的免费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
我得到了这篇文章:
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个(即熵最大的那些),我得到:
关于image - 检测图像中小的细节的存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28413887/