【问题标题】:extracting masked image from original without black background从没有黑色背景的原始图像中提取蒙版图像
【发布时间】:2011-12-08 03:07:02
【问题描述】:

我有一个显着性图,它指示图像的哪个部分最显着。我一直在尝试从原始图像中提取图像的这一显着部分。现在我在做:

img_thresholded=img.*repmat(saliency_map >= prctile(saliency_map(:),75),[1 1 size(img,3)]);

这段代码实现的是:

如您所见,提取的显着图像在背景中有很多黑色,这是意料之中的,因为上面的代码将任何非显着部分转换为 0。我的问题是,我该怎么做才能让我只得到显着图像,没有黑色背景?

【问题讨论】:

  • “没有黑色背景”是什么意思?黑色背景在那里,因为您的数据必须存储在某处并且某处是矩形......如果您不关心信息/图像的“几何”外观,那么您可以扫描整个矩阵并删除0 价值指数
  • @Smash 我在考虑透明图像,其中那些 0 被删除。但是,不能保证图像中的某些东西也不是黑色的,我不想冒险破坏它。这就是我的困境。

标签: matlab image-processing


【解决方案1】:

你已经拥有了你需要的东西,
你的下一步是什么?我会告诉你如何处理黑色背景。

【讨论】:

  • 我的下一步是去除背景,使用 all(img....)=[] 的组合。但就像我在 cmets 中所说的那样,我不想冒险抹掉实际上是黑色的图像部分。
  • 这里有两个单独的问题,如果您的图像中有“真正的”黑点,您可以使用“蓝屏”(0,0,1)之类的其他东西作为“无”,第二个问题是 bg 显示为黑色的问题,正如我所说的,这不是实际问题,取决于您接下来的步骤。
  • 如果图片是真实照片,很有可能您的图片中没有任何完全黑色的像素。
  • 我需要这张图片来提取 SIFT 描述符,所以我不想要任何背景、黑屏或蓝屏。但是您确实有一点,黑色像素不在真实照片中。
  • 我想你最好的办法是根据显着性地图驱动的标准将图像切割成小矩形,比如从地图的顶部到 3*std 或类似的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多