OpenCV旋转图像显示时形状不正确

OpenCV旋转图像显示时形状不正确,opencv,Opencv,我将图像从左侧旋转到右侧,使用 image = cv2.warpAffine(image, R, dst_size, flags=cv2.INTER_LINEAR) 其中,dst_size是(547363),我修改了R,使原始图像适合新的尺寸。 我用cv2.imshow('rect post rotation',img)来显示右边的图像。您可以看到,它看起来被剪裁为(363547),即使当我打印出img形状时,也会得到(547363,3) 为什么图像的形状不能反映显示图像的形状 您需要将目标大

我将图像从左侧旋转到右侧,使用

image = cv2.warpAffine(image, R, dst_size, flags=cv2.INTER_LINEAR)
其中,
dst_size
(547363)
,我修改了R,使原始图像适合新的尺寸。 我用
cv2.imshow('rect post rotation',img)
来显示右边的图像。您可以看到,它看起来被剪裁为
(363547)
,即使当我打印出img形状时,也会得到
(547363,3)

为什么图像的形状不能反映显示图像的形状


您需要将目标大小设置为旋转大小,即:

   cv::Size dst_size(imOrig.size().height,imOrig.size().width);
或者,您可以使用转置和翻转进行90度旋转:

   cv::Mat imRot90 = imOrig.t();   
   cv::flip(imRot90 ,imRot90 ,1); 

干杯

我确实将目标尺寸设置为旋转尺寸。您确定尺寸的坐标,尺寸(x,y),与图像(y,x)相反,因此很容易设置错误。如果你把它设置成另一个方向会发生什么?嗨,看到答案了吗