2024-05-23 16:09:47 发布
网友
基本上,我用我们的打印机扫描了许多旧照片。扫描的每一页大约有四张照片(在页面的四个角上),而空白并不总是完全是白色的。我想用openCV自动裁剪成单独的照片。需要解决这个问题的建议,谢谢!在
我考虑过检测页面上四个矩形的形状来获得坐标或者使用opencv grabCut。。。我不知道
我尝试过使用PIL,但无法正确裁剪照片,因为有些照片的背景颜色也相同,这会导致裁剪过早结束。在
这是一个大概的草图
(除非它们是人的真实照片)
这里有一个基于这样一个假设的方法,即照片不会相互交叉
阈值图像
接下来我们使用cv2.findContours()获得轮廓,并使用cv2.boundingRect()获取边界框。然后我们可以用
cv2.findContours()
cv2.boundingRect()
x,y,w,h = cv2.boundingRect(c) ROI = original[y:y+h, x:x+w]
这是结果
照片#1
照片#2
照片#3
照片#4
这里有一个基于这样一个假设的方法,即照片不会相互交叉
阈值图像
接下来我们使用
cv2.findContours()
获得轮廓,并使用cv2.boundingRect()
获取边界框。然后我们可以用这是结果
照片#1
照片#2
照片#3
照片#4
^{pr2}$
相关问题 更多 >
编程相关推荐