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)相反,因此很容易设置错误。如果你把它设置成另一个方向会发生什么?嗨,看到答案了吗