Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从OpenCV中的欧几里德变换中的2x3矩阵中找到轴心点_Opencv_Math - Fatal编程技术网

如何从OpenCV中的欧几里德变换中的2x3矩阵中找到轴心点

如何从OpenCV中的欧几里德变换中的2x3矩阵中找到轴心点,opencv,math,Opencv,Math,我有两张照片: 使用cv2.FindTransformeC im1、im2、warp_矩阵、warp_模式,我得到这个变换矩阵: [[ 0.70637488 0.70783788 -86.60842133] [ -0.70783788 0.70637488 137.01171875]] 如何使用该矩阵找到图像的旋转点 以下是矩阵所代表的内容: 我知道我可以用X,Y平移的斜边和旋转角度来计算等腰三角形。但是我如何使用等腰三角形红色来找到平移中心的X和Y绿色呢?三角法是找到

我有两张照片:

使用cv2.FindTransformeC im1、im2、warp_矩阵、warp_模式,我得到这个变换矩阵:

[[   0.70637488    0.70783788  -86.60842133]
 [  -0.70783788    0.70637488  137.01171875]]
如何使用该矩阵找到图像的旋转点

以下是矩阵所代表的内容:

我知道我可以用X,Y平移的斜边和旋转角度来计算等腰三角形。但是我如何使用等腰三角形红色来找到平移中心的X和Y绿色呢?三角法是找到轴心点的唯一方法吗


所以你有一个变换矩阵

/ a b  tx \
\ c d  ty /
你想把它转换成围绕某个轴旋转的表示。围绕枢轴px,py的旋转可以表示为

T = T(p) R T(-p)
如果你扩展这个,你会得到

/ a b  tx \  =      / a b  px-apx-bpy \
\ c d  ty /         \ c d  py-cpx-dpy /
如果选择相同的旋转,则第一个2x2矩阵已经相等。最后一列给出了一个线性方程组。一般的解决办法是不考虑特殊情况:

px = (tx - d tx + b ty) / (a + b c + d - a d - 1)
py = (ty + c tx - a ty) / (a + b c + d - a d - 1)
对于矩阵,这将提供:

px = 121.842
py = 172.899

所以你有一个变换矩阵

/ a b  tx \
\ c d  ty /
你想把它转换成围绕某个轴旋转的表示。围绕枢轴px,py的旋转可以表示为

T = T(p) R T(-p)
如果你扩展这个,你会得到

/ a b  tx \  =      / a b  px-apx-bpy \
\ c d  ty /         \ c d  py-cpx-dpy /
如果选择相同的旋转,则第一个2x2矩阵已经相等。最后一列给出了一个线性方程组。一般的解决办法是不考虑特殊情况:

px = (tx - d tx + b ty) / (a + b c + d - a d - 1)
py = (ty + c tx - a ty) / (a + b c + d - a d - 1)
对于矩阵,这将提供:

px = 121.842
py = 172.899

旋转和整个变换的原点位于定义输入图像原点的任何位置,以及图像中0,0的任何位置:[x'y']^T:=W*[x y 1]^T@BeyelerStudios-感谢您的评论。我不确定我是否理解你说的话。我在寻找翻译的旋转点。例如,在图形中,有两个黑色正方形,假设它们是10x10。其中一个黑色正方形旋转45度,以5x 5y作为pivit点。Opencv为我提供了平移绿色和角度,我如何找到该轴心点?不,它是围绕0,0旋转的,然后进行平移。@BeyelerStudios-我理解这一点,我将尝试更好地解释我在寻找什么。这幅画是我画的,我把黑色正方形旋转了45度,用5x5y作为皮维特点。我想做的是比较两幅图像,然后找到中心,就像我在画图中做的一样,使用openCVYes给出的矩阵,但是你的轴是完全任意的,与变换无关。您的意思是想知道图像中表示的实际对象在没有平移组件的情况下的纯旋转吗?旋转和整个变换的原点位于定义输入图像原点的位置,以及图像中0,0的位置:[x'y']^T:=W*[x y 1]^T@BeyelerStudios-感谢您的评论。我不确定我是否理解你说的话。我在寻找翻译的旋转点。例如,在图形中,有两个黑色正方形,假设它们是10x10。其中一个黑色正方形旋转45度,以5x 5y作为pivit点。Opencv为我提供了平移绿色和角度,我如何找到该轴心点?不,它是围绕0,0旋转的,然后进行平移。@BeyelerStudios-我理解这一点,我将尝试更好地解释我在寻找什么。这幅画是我画的,我把黑色正方形旋转了45度,用5x5y作为皮维特点。我想做的是比较两幅图像,然后找到中心,就像我在画图中做的一样,使用openCVYes给出的矩阵,但是你的轴是完全任意的,与变换无关。你的意思是想知道在没有平移分量的情况下,图像中表示的实际对象的纯旋转吗?非常感谢!这正是我想要的。非常感谢!这正是我想要的。