【问题标题】:Detecting the presence of small details in an image检测图像中是否存在小细节
【发布时间】:2015-02-09 16:00:00
【问题描述】:

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

我想我可能正在寻找特定的频段,因此我想到的方法包括:手动调整卷积核,直到达到我需要的值,使用特定的 DCT 系数,在定向滤波器响应上应用直方图.但也许我错过了更明显的东西?

为了回答下面cmets中的一个问题,我正在Matlab中开发

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

【问题讨论】:

  • 我不是图像处理专家,但这听起来像是“我需要五年时间和一个研究团队”的问题之一。
  • 这让我哈哈大笑!
  • 你在开发什么平台? Matlab 有很多这样的功能随时可用。事实上,即使你不是,在 Matlab 中开发,然后将函数翻译成你喜欢的语言也是最好的选择。我将进一步编辑我的答案,再加上几点,这可能会让你朝着正确的方向前进。
  • 好点@sipty 我已经更新了我的问题,是的,我正在使用 Matlab 开发

标签: image algorithm image-processing


【解决方案1】:

这里有一些不科学的东西,但让人们谈论可能还不错。我从这张图片开始。

并使用出色的免费 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 个(即熵最大的那些),我会得到:

【讨论】:

  • 使用熵是一个有趣的想法 - 并且可以很容易地用于任何重叠的 NxM 块
  • 这很简单,您可以直接在命令行中完成,无需编译任何东西。它安装在许多 Linux 上,也可用于 Windows 和 OS X - 最好通过homebrew
  • 这种方法对彩色图像仍然准确吗?
  • @Sipty 是的,我不明白为什么不这样做。试一试 - 它安装在许多 Linux 发行版上。
【解决方案2】:

这个问题本身就太宽泛了,无法在我这边给出一个非纸质的答案。话虽如此,我可以为您提供一些缩小问题范围的建议。

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

浏览最近的论文(不超过 5 年),寻找满足您需求的工作。如果您没有找到任何内容,请扩大搜索条件或尝试不同的字词。

如果您有更具体的问题,请编辑您的问题并告诉我。

永远记得把大问题分成更小的块,然后再分成更小的块,直到你有一盘美味、易于管理的食物。

编辑:根据我收集到的信息,您对边缘检测和特征选择算法感兴趣?以下是一些有用的链接,它们可能很有用:

-MATLAB feature detection -MATLAB edge detection

还有这个MATLAB edge detection write up,它是他们广泛指南文档的一部分,有望证明对您深入研究Matlab image processing toolbox很有用。有关您问题的具体答案的文档。

【讨论】:

  • 我认为这是有史以来最通用的答案,它肯定不能回答这个问题。
  • 我同意它没有直接回答这个问题,但它似乎是解决一般问题的好建议。
  • @amit 故意如此。 OP 问题的唯一答案是“是”。并查看离您最近的图像处理手册。我给出的答案将 OP 指向正确的方向,因为当前问题确实没有任何其他可行的答案。
  • 公平地说,这是对我的开放式问题的非常合理的回答 - 非常感谢您不厌其烦地回答
【解决方案3】:

您会发现最大稳定极值区域 (MSER) 对此很有用。您应该能够施加区域约束以过滤掉大型 MSER,然后计算 MSER 密度,例如 Mark 在他的回答中通过将图像划分为图块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2019-08-14
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多