平移:
#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector>
using namespace std;
using namespace cv;
int main()
{
const char* imagename = "C://Users//huashuo111//Desktop//test2.bmp";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return-1;
}
Mat dst;
Mat M=(Mat_<double>(2,3)<<1,0,200,0,1,150);//平移向量(200,150)
warpAffine(img,dst,M,img.size());
imshow("原图",img);
imshow("平移",dst);
imwrite( "C://Users//huashuo111//Desktop//pingyi.bmp",dst);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}原图:
平移后:
旋转:
#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector>
using namespace std;
using namespace cv;
int main()
{
const char* imagename = "C://Users//huashuo111//Desktop//test2.bmp";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return-1;
}
Mat dst;
Mat M=getRotationMatrix2D(Point2f(img.cols/2,img.rows/2),45,1);//旋转矩阵(绕中心点逆时针45度)
warpAffine(img,dst,M,img.size());
imshow("原图",img);
imshow("平移",dst);
imwrite( "C://Users//huashuo111//Desktop//xuanzhuan.bmp",dst);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}旋转后:
尺寸变换之图像金字塔:
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img;
img=imread("C://Users//huashuo111//Desktop//橘子.jpg");
namedWindow("原图",1);
imshow("原图",img);
Mat img1=img.clone();
Mat temp=img.clone();
Mat img2;
pyrUp(temp,img1,Size());//放大
pyrDown(temp,img2,Size());//缩小
imshow("效果图1",img1);
imshow("效果图2",img2);
waitKey();
return 0;
}
655

被折叠的 条评论
为什么被折叠?



