我必须从灰度图像中提取矩形对象。我正在使用阈值处理来提取矩形掩模,如下所示
有时,矩形物体可能有如上所示的倾斜。在下一步中,我必须更正矩形对象的形状以获得以下输出(大致)
目前,我正在使用霍夫线变换来找到最接近图像边缘的线(即最左边的线垂直线)。我得到线的角度并使用该角度来获得旋转矩阵并对整个图像执行warpAffine(使用opencv函数)。
我在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))

正如您所看到的那样,仿射修正的物体在顶部和底部仍有一些倾斜。有没有一种简单的方法来消除顶部/底部的倾斜?
由于
答案 0 :(得分:1)
您应该可以使用getPerspectiveTransform
执行某些操作,我使用它in a grid finder,我的用法与您的用法并不完全相同,但您可以通过阅读来学习。我不是opencv专家,不要指望最先进的代码。
此外,可能几乎不可能知道倾斜物体的比例,而不使用花哨的想法来监督学习以理解物体的方向。这里有一个讨论:https://math.stackexchange.com/questions/1339924/compute-ratio-of-a-rectangle-seen-from-an-unknown-perspective