opencv 旋转图片不剪切
旋转矩形
double angle = -45; cv::Point2d rot_center(w,h); cv::RotatedRect rRect = cv::RotatedRect(rot_center, cv::Size(w,h), angle); cv::Point2f vertices[4]; rRect.points(vertices);
旋转图像
cv::Mat src; cv::Point2f center((src.cols - 1) / 2.0, (src.rows - 1) / 2.0); cv::Mat rot = cv::getRotationMatrix2D(center, angle, 1.0); cv::Rect2f bbox = cv::RotatedRect(cv::Point2f(), src.size(), angle).boundingRect2f(); rot.at<double>(0, 2) += bbox.width / 2.0 - src.cols / 2.0; rot.at<double>(1, 2) += bbox.height / 2.0 - src.rows / 2.0; cv::Mat dist; cv::warpAffine(src, dist, rot, bbox.size());