1.先放上效果图
2.再放上代码
#include<opencv2/opencv.hpp>
int main()
{
//1 读取图片
IplImage* src = cvLoadImage("D:\\background.jpg", 1);
CvSize dst;
dst.width = (int)src->width * 0.68;
dst.height = (int)src->height * 0.68;
//2 创建一副图片跟原图一样,三个参数分别是Cvsize,深度,通道数
IplImage* dst1 = cvCreateImage(dst, src->depth, src->nChannels);
cvResize(src, dst1, 1);
//3 创建窗口
cvNamedWindow("原图", 1);
cvNamedWindow("缩放图", 1);
//4 在窗口中显示图片
cvShowImage("原图", src);
cvShowImage("缩放图", dst1);
//5 等待
cvWaitKey(0);
//6 释放内存
cvReleaseImage(&src);
cvReleaseImage(&dst1);
cvDestroyWindow("原图");
cvDestroyWindow("缩放图");
return 0;
}
3.自我总结:
刚才是接触opencv,个人感觉难点就是几个方法。
(1)cvLoadImage(),第一个参数是图片地址,这里要注意双斜杠//,第一个/是转义符号,第二个/才表示真正的地址。
(2)cvCreatImage(),一参是CvSize类型的矩阵,二参是要创建图像的位深(等于输入图像的位深),三参是通道数。
(3)cvRezise(),一参是输入图像,二参是输出图像,三参是插值的类型(如果是1,就表示
CV_INTER_LINEAR - 双线性插值(默认方法))。
剩下的就是按套路出牌就ok了。1 读取图像 ,2 创建窗口,3 在窗口上显示图像,4释放内存。