o2co2 发表于 2012-8-8 17:30:33

[OpenCV2.4]图像变换之指定圆心角度变换图像


我的博客:http://zwmin.com

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
int
main(int argc, char *argv[])
{
cv::Mat src_img = cv::imread("../../image/lenna.png", 1);
if(src_img.empty()) return -1; // 旋转:-40度;
float angle = -40.0, scale = 1.0;
// 中心:画像中心
cv::Point2f center(src_img.cols*0.5, src_img.rows*0.5);
// 从上述条件计算二维旋转矩阵
const cv::Mat affine_matrix = cv::getRotationMatrix2D( center, angle, scale );std::cout << "affine_matrix=\n" << affine_matrix << std::endl;cv::Mat dst_img;
cv::warpAffine(src_img, dst_img, affine_matrix, src_img.size());cv::namedWindow("src", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO);
cv::namedWindow("dst", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO);
cv::imshow("src", src_img);
cv::imshow("dst", dst_img);
cv::waitKey(0);
}

输入图像:
http://zwmin.com/wp-content/uploads/2012/08/wpid-d4dd25d302de34c41fa5bf022c7734c8_9848406.jpg

运行结果:
http://zwmin.com/wp-content/uploads/2012/08/wpid-d4dd25d302de34c41fa5bf022c7734c8_9875390.jpg

affine_matrix=
[0.766044443118978, -0.6427876096865394, 214.1616488863111;
0.6427876096865394, 0.766044443118978, -108.4042944283088]



页: [1]
查看完整版本: [OpenCV2.4]图像变换之指定圆心角度变换图像