opencv - 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)

为什么图像的形状不能反射(reflect)所显示图像的形状?

最佳答案

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

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

或者,您可以使用转置和翻转进行90度旋转:
   cv::Mat imRot90 = imOrig.t();   
   cv::flip(imRot90 ,imRot90 ,1); 

干杯

https://stackoverflow.com/questions/23838662/

相关文章:

docker - 无法在 Dockerfile 中运行 sysctl 命令

python - 质心计算程序中的时间滞后

opencv - 如何从opencv中的上下文获取设备列表

python - GUI 卡住了其余的 python 代码

opencv - 更改图像opencv的宽度步长

python - 使用OpenCV计数视频中的帧…(Python)

docker - Docker端口映射在Windows 10上不起作用

python - 使用 slider 编辑颜色值

android - 如何使用静态OpenCV在Android中使用JavaCV的静态方法

docker - depends_on不等待docker-compose 1.22.0中的其他服务