源码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 |
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include<opencv2/opencv.hpp> using
namespace std; using
namespace cv;<br> int main() { // cvLoadImage( filename, -1 ); 默认读取图像的原通道数 // cvLoadImage( filename, 0 ); 强制转化读取图像为灰度图 // cvLoadImage( filename, 1 ); 读取彩色图 IplImage * srcImg=cvLoadImage( "1.jpg" ,-1); IplImage *detImg=NULL; CvSize size; double
scale=0.314; size.width=srcImg->width*scale; size.height=srcImg->height*scale;<br> //创建图片并缩放 detImg=cvCreateImage(size,srcImg->depth,srcImg->nChannels);<br> // ·CV_INTER_NN - 最近-邻居插补 // ·CV_INTER_LINEAR - 双线性插值(默认方法) // ·CV_INTER_AREA - 像素面积相关重采样。当缩小图像时,该方法可以避免波纹的出现。当放大图像时,类似于方法CV_INTER_NN。 // ·CV_INTER_CUBIC - 双三次插值。) cvResize( srcImg,detImg,CV_INTER_AREA);<br> const
char *srcWin= "image" ; //必须是const char*类型 const
char * detWin= "scaled" ; //创建窗口 cvNamedWindow(srcWin,CV_WINDOW_AUTOSIZE); cvNamedWindow(detWin,CV_WINDOW_AUTOSIZE); //在指定窗口中显示图像 cvShowImage(srcWin,srcImg); cvShowImage(detWin,detImg );<br> //等待按键事件 cvWaitKey();<br> const
char *saveName= "scaled.jpg" ; //保存图片 cvSaveImage(saveName, detImg);<br> //不要忘记释放 否则会内存泄露 cvDestroyWindow(srcWin); cvDestroyWindow(detWin); cvReleaseImage(&srcImg); cvReleaseImage(&detImg); return
0; } |
执行结果
原文:http://www.cnblogs.com/juaner767/p/3627055.html