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)代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
博乐Bar