Python:将图像上的矩形缩小到边框
Python: Reduce rectangles on images to their border
我有很多包含几个矩形的灰度输入图像。其中一些重叠,一些越过图像的边界。示例图像可能如下所示:
现在我必须将矩形缩小到它们的边界。我的想法是使所有距离边界小于 N
(例如 3)像素的非白色像素或白色像素(使用曼哈顿距离)变为白色。输出应如下所示(抱歉边框大小不同):
实现起来并不难。不幸的是,实施必须很快,因为输入可能包含非常多的图像(例如 100'000)并且用户必须等到此步骤完成。
我考虑过使用 fromimage
然后用 numpy 做所有事情,但我没有找到好的解决方案。
也许有人有想法或提示如何非常有效地解决这个问题?
- 计算图像的距离变换(opencv distanceTrasform http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html)
- 在结果图像中,将值大于 3 的所有像素归零
我有很多包含几个矩形的灰度输入图像。其中一些重叠,一些越过图像的边界。示例图像可能如下所示:
现在我必须将矩形缩小到它们的边界。我的想法是使所有距离边界小于 N
(例如 3)像素的非白色像素或白色像素(使用曼哈顿距离)变为白色。输出应如下所示(抱歉边框大小不同):
实现起来并不难。不幸的是,实施必须很快,因为输入可能包含非常多的图像(例如 100'000)并且用户必须等到此步骤完成。
我考虑过使用 fromimage
然后用 numpy 做所有事情,但我没有找到好的解决方案。
也许有人有想法或提示如何非常有效地解决这个问题?
- 计算图像的距离变换(opencv distanceTrasform http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html)
- 在结果图像中,将值大于 3 的所有像素归零