使用精明边缘检测的图像裁剪[重复]
Posted
技术标签:
【中文标题】使用精明边缘检测的图像裁剪[重复]【英文标题】:Image Cropping using canny edges detection [duplicate] 【发布时间】:2019-02-09 18:30:03 【问题描述】:我使用 Canny 边缘检测器生成了边缘,现在想通过这些边缘裁剪源图像。
有什么办法可以得到。
-
图像的最左侧和最顶部
255
像素位置。
右和最上255
图像的像素位置。
图像的最左侧和最底部255
像素位置。
图像的最右和最底部255
像素位置。
并根据该位置裁剪该图像。 使用 open cv 或任何其他使用 python 的库。
【问题讨论】:
cv2.findNonZero
和 cv2.boundingRect
在结果上。
如果像素 [1,2] 和 [2,1] 都是白色的,那么最左边和最上面是哪个?
类似***.com/questions/34981144/…?
@Silencer 是的,请将其标记为重复。我也标记了
【参考方案1】:
可能有更好的解决方案,但我认为你可以实现一个算法。
首先绘制一个完全捕获子像素集的正方形。然后,一次一个地慢慢地引入侧面,直到它们遇到255
像素。完全拉入所有 4 个侧面后,您将拥有所需的裁剪区域。
您还可以使用四个简单的(单行)For 循环来检查“第一个白色像素”。由于像素 x-pos 从顶部/左侧开始,使用x++
向前检查,x--
向后检查(从右侧)。
【讨论】:
以上是关于使用精明边缘检测的图像裁剪[重复]的主要内容,如果未能解决你的问题,请参考以下文章