我想旋转图像,但是如果没有裁剪,我无法获得旋转的图像
我原来的形象:
现在我使用这段代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
// Compile with g++ code.cpp -lopencv_core -lopencv_highgui -lopencv_imgproc
int main()
{
cv::Mat src = cv::imread("im.png", CV_LOAD_IMAGE_UNCHANGED);
cv::Mat dst;
cv::Point2f pc(src.cols/2., src.rows/2.);
cv::Mat r = cv::getRotationMatrix2D(pc, -45, 1.0);
cv::warpAffine(src, dst, r, src.size()); // what size I should use?
cv::imwrite("rotated_im.png", dst);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并获得以下图像:
但我想得到这个:
非常感谢您的帮助!
minAreaRect
在OpenCV中返回一个旋转的矩形.如何裁剪矩形内部的图像部分?
boxPoints
返回旋转矩形的角点的坐标,这样可以通过循环框内的点来访问像素,但是有更快的方法在Python中裁剪吗?
编辑
请参阅code
下面的答案.