本文主要是介绍opencv缩略图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
缩略图代码:
#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(CvSize size, intdepth, intchannels);
函数说明:
第一个参数表示图像的大小。
第二个参数表示图像的深度,可以为IPL_DEPTH_8U,IPL_DEPTH_16U等等。
第三个参数表示图像的通道数。
这篇关于opencv缩略图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!