opencv实例二:缩放一张图片

来源:互联网 发布:linux 如何退出tail 编辑:程序博客网 时间:2024/05/21 09:40
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