opencv实例二:缩放一张图片

1、知识补充

const char*, char const*, char*const的区别

事实上这个概念谁都有只是三种声明方式非常相似:

Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:

把一个声明从右向左读。

char * const cp; ( * 读成 pointer to ) cp is a const pointer to char

const char * p; p is a pointer to const char;

char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。

C++标准规定,const关键字放在类型或变量名之前等价的。

const int n=5; //same as below

int const m=10

结论:

char * const cp     : 定义一个指向字符的指针常数,即const指针

const char* p       : 定义一个指向字符常数的指针

char const* p       : 等同于const char* p

 2、缩放一张图片

1)代码如下:

 1 /***********************************************************************************
 2 开发环境:opencv3.0.0 + vs2012旗舰版;win7正式版32位
 3 功能描述:缩放图像文件
 4 作者信息:博乐Bar
 5 开发时间:20150909
 6 ***********************************************************************************/
 7 
 8 #include <opencv2/opencv.hpp>
 9 using namespace std;
10 //隐藏控制台窗口
11 #pragma comment(linker, "/subsystem:"windows" /entry:"mainCRTStartup"")
12 int main()
13 {
14     const char *ImageName = "在路上.jpg";
15     const char *SaveImageName = "在路上缩放图.jpg";
16     const char *WindowsSrcTitle = "原图 (博乐Bar)";
17     const char *WindowsDstTitle = "缩放图 (博乐Bar)";
18     
19     double fScale = 0.5;        //缩放倍数
20     CvSize czSize;                //目标图像尺寸
21     
22     //从文件中读取图像  
23     IplImage *pSrcImage = cvLoadImage(ImageName, CV_LOAD_IMAGE_UNCHANGED);
24     IplImage *pDstImage = NULL;    
25     
26     //计算目标图像大小
27     czSize.width = pSrcImage->width * fScale;
28     czSize.height = pSrcImage->height * fScale;
29     
30     //创建图像并缩放
31     pDstImage = cvCreateImage(czSize, pSrcImage->depth, pSrcImage->nChannels);
32     cvResize(pSrcImage, pDstImage, CV_INTER_AREA);
33     
34     //创建窗口
35     cvNamedWindow(WindowsSrcTitle, CV_WINDOW_AUTOSIZE);
36     cvNamedWindow(WindowsDstTitle, CV_WINDOW_AUTOSIZE);
37     
38     //在指定窗口中显示图像
39     cvShowImage(WindowsSrcTitle, pSrcImage);
40     cvShowImage(WindowsDstTitle, pDstImage);
41     
42     //等待按键事件
43     cvWaitKey();
44     
45     //保存图片
46     cvSaveImage(SaveImageName, pDstImage);
47     
48     cvDestroyWindow(WindowsSrcTitle);
49     cvDestroyWindow(WindowsDstTitle);
50     cvReleaseImage(&pSrcImage);
51     cvReleaseImage(&pDstImage);
52     return 0;
53 }
View Code
原文地址:https://www.cnblogs.com/huanzxj/p/4797731.html