opencv实例二:缩放一张图片

本文介绍了C++中const修饰符与指针结合的不同用法,并通过一个使用OpenCV进行图像缩放的实际例子来加深理解。文章首先解释了constchar*, charconst* 和 char*const 的区别,随后提供了一段详细的代码示例,展示了如何利用OpenCV库在Windows平台上实现图像的缩放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值