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

时间:2014-05-23 21:36:47

标签: opencv

我使用

将图像从左侧旋转到右侧的图像
image = cv2.warpAffine(image, R, dst_size, flags=cv2.INTER_LINEAR)

其中dst_size(547, 363),我修改了R,以便原始图像适合新维度。 我用cv2.imshow('rect post-rotation', img)显示图像以显示右侧的图像。您可以看到它被裁剪为(363, 547)的大小,即使我打印出img形状时,我得到(547, 363, 3)

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

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要将目标尺寸设置为旋转尺寸,即:

   cv::Size dst_size(imOrig.size().height,imOrig.size().width);

或者你可以使用转置和翻转90度旋转:

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

欢呼声