首页 > 其他 > 详细

opencv实现图片缩放

时间:2014-03-27 06:32:40      阅读:599      评论:0      收藏:0      [点我收藏+]

源码

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;
}

执行结果

bubuko.com,布布扣

opencv实现图片缩放,布布扣,bubuko.com

opencv实现图片缩放

原文:http://www.cnblogs.com/juaner767/p/3627055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!