使用精明边缘检测的图像裁剪[重复]

Posted

技术标签:

【中文标题】使用精明边缘检测的图像裁剪[重复]【英文标题】:Image Cropping using canny edges detection [duplicate] 【发布时间】:2019-02-09 18:30:03 【问题描述】:

我使用 Canny 边缘检测器生成了边缘,现在想通过这些边缘裁剪源图像。

有什么办法可以得到。

    图像的最左侧和最顶部255 像素位置。 右和最上255图像的像素位置。 图像的最左侧和最底部255 像素位置。 图像的最右和最底部255 像素位置。

并根据该位置裁剪该图像。 使用 open cv 或任何其他使用 python 的库。

【问题讨论】:

cv2.findNonZerocv2.boundingRect 在结果上。 如果像素 [1,2] 和 [2,1] 都是白色的,那么最左边和最上面是哪个? 类似***.com/questions/34981144/…? @Silencer 是的,请将其标记为重复。我也标记了 【参考方案1】:

可能有更好的解决方案,但我认为你可以实现一个算法。

首先绘制一个完全捕获子像素集的正方形。然后,一次一个地慢慢地引入侧面,直到它们遇到255 像素。完全拉入所有 4 个侧面后,您将拥有所需的裁剪区域。

您还可以使用四个简单的(单行)For 循环来检查“第一个白色像素”。由于像素 x-pos 从顶部/左侧开始,使用x++ 向前检查,x-- 向后检查(从右侧)。

【讨论】:

以上是关于使用精明边缘检测的图像裁剪[重复]的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV - 精明的边缘检测无法正常工作

如何在 Python 中检测边缘并裁剪图像

使用 Open CV python 对两幅图像进行边缘检测和直方图匹配。

自适应 Canny 边缘检测

python 精明等边缘检测的方法

不同边缘检测算法的优缺点