opencv缩略图

来源:互联网 发布:centos syslog 配置 编辑:程序博客网 时间:2024/04/29 04:35


缩略图代码:

    #include "stdafx.h"      #include <opencv2/opencv.hpp>      using namespace std;      #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")          int main()      {                  const char *SrcImageName = "001.jpg";  const char *DesImageName = "001缩放.jpg";                const char *SrcWindowName = "原图";const char *DesWindowName = "缩放图";double fScale = 0.5;  //缩小倍数CvSize cvsize;IplImage *SrcImage=cvLoadImage(SrcImageName,-1);  //获取原图IplImage *DesImage=NULL;;cvsize.width=SrcImage->width * fScale;   //计算缩略图的长宽cvsize.height=SrcImage->height * fScale;DesImage=cvCreateImage(cvsize,SrcImage->depth,SrcImage->nChannels);  //创建新图cvResize(SrcImage,DesImage,CV_INTER_AREA);  cvNamedWindow(SrcWindowName,CV_WINDOW_AUTOSIZE);cvNamedWindow(DesWindowName,CV_WINDOW_AUTOSIZE);cvShowImage(SrcWindowName,SrcImage); //显示原图和缩略图cvShowImage(DesWindowName,DesImage);cvWaitKey();cvDestroyWindow(SrcWindowName);cvDestroyWindow(DesWindowName);cvReleaseImage(&SrcImage);cvReleaseImage(&DesImage);        return 0;      }  

主要函数介绍

1.1 cvResize

函数功能:图像大小变换

函数原型:

voidcvResize(

  const CvArr*src,

  CvArr*dst,

  intinterpolation=CV_INTER_LINEAR

);

函数说明:

第一个参数表示输入图像。

第二个参数表示输出图像。

第三个参数表示插值方法,可以有以下四种:

CV_INTER_NN -最近邻插值,

CV_INTER_LINEAR -双线性插值 (缺省使用)

CV_INTER_AREA -使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN方法..

CV_INTER_CUBIC -立方插值.

这个函数在功能上与Win32 API中的StretchBlt()函数类似。

 

1.2 cvCreateImage

函数功能:创建图像

函数原型:

IplImage*cvCreateImage(CvSizesize, intdepth,intchannels);

函数说明:

第一个参数表示图像的大小。

第二个参数表示图像的深度,可以为IPL_DEPTH_8UIPL_DEPTH_16U等等。

第三个参数表示图像的通道数。


0 0
原创粉丝点击