【问题标题】:Python: Reduce rectangles on images to their borderPython:将图像上的矩形缩小到它们的边界
【发布时间】:2016-09-09 02:50:56
【问题描述】:

我有许多包含多个矩形的灰度输入图像。其中一些重叠,一些超出图像的边界。示例图像可能如下所示:

现在我必须将矩形缩小到它们的边界。我的想法是使所有距边界小于N(例如3)像素的非白色像素或白色像素(使用曼哈顿距离)变为白色。输出应如下所示(抱歉,边框大小不同):

实现这一点并不难。不幸的是,实现必须很快,因为输入可能包含非常多的图像(例如 100'000),用户必须等到这一步完成。

我考虑过使用fromimage,然后用 numpy 做所有事情,但我没有找到好的解决方案。

也许有人有想法或暗示如何非常有效地解决这个问题?

【问题讨论】:

  • 您当前的实施速度有多快? :)
  • 我没有实现它,因为我会用循环来实现它(类似于stackoverflow.com/questions/39159345/…)。但这是令人难以置信的缓慢。嵌套循环可能更糟。在发布的链接中,我需要几秒钟才能获得约 1'000 张图像。这就是为什么我希望有一个好的技巧/算法来做到这一点。

标签: python-2.7 numpy image-processing rectangles


【解决方案1】:
  1. 计算图像的距离变换(opencv distanceTrasform http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html
  2. 在结果图像中,所有值大于 3 的像素为零

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2014-12-20
    相关资源
    最近更新 更多