gpt4 book ai didi

python - 使用 opencv 校正任何倾斜的矩形蒙版

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:23 24 4
gpt4 key购买 nike

我必须从灰度图像中提取一个矩形对象。我正在使用阈值来提取矩形蒙版,如下所示

enter image description here

有时,矩形对象可能会像上图那样倾斜。在下一步中,我必须更正矩形对象的形状以获得以下输出(大致)

enter image description here

目前,我正在使用霍夫线变换来找到最接近图像边缘的线(即最左边的垂直线)。我得到线的角度并使用该角度获得旋转矩阵并对整个图像执行 warpAffine(使用 opencv 函数)。

靠近图像边缘的垂直线检测 enter image description here

仿射校正图像 enter image description here

我在 python 中使用以下代码

# get the rotation matrix
myRotMatrix = cv2.getRotationMatrix2D((inBinaryImage.shape[1]/2,inBinaryImage.shape[0]/2),-myAngle,1)

# perform warpAffine to avoid issues
myBinaryImageTemp = cv2.warpAffine(inBinaryImage,myRotMatrix,(myNewWidth,myNewHeight))

如您所见,仿射校正后的对象在顶部和底部仍有一些倾斜。有没有一种简单的方法也可以消除顶部/底部的倾斜?

谢谢

最佳答案

你应该可以用 getPerspectiveTransform 做一些事情,我用过它 in a grid finder ,我的用法和你的并不完全一样,但是你一定可以通过阅读它来学习。我不是 opencv 专家,不要指望最先进的代码。

此外,如果不使用像监督学习这样的奇思妙想来理解物体的方向,可能几乎不可能知道倾斜物体的比例。这里有一个讨论:https://math.stackexchange.com/questions/1339924/compute-ratio-of-a-rectangle-seen-from-an-unknown-perspective

关于python - 使用 opencv 校正任何倾斜的矩形蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com