我有许多灰度输入图像,其中包含几个矩形 . 它们中的一些重叠,一些遍布图像的边界 . 示例图像可能如下所示:
现在我必须将矩形缩小到它们的边界 . 我的想法是制作远离边界小于 N
(例如3)像素的所有非白色像素或白色像素(使用曼哈顿距离)白色 . 输出应如下所示(抱歉不同大小的边框):
实现这一点并不是很难 . 不幸的是,实现必须很快,因为输入可能包含极其多的图像(例如100'000),并且用户必须等到该步骤结束 .
我想过使用 fromimage
然后用numpy做一切,但我找不到一个好的解决方案 .
也许有人有想法或提示如何解决这个问题非常有效?
1 回答
计算图像的距离变换(opencv distanceTrasform http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html)
在结果图像中,将所有值大于3的像素归零