示例程序010--图像缩放

本文介绍使用OpenCV库中的cvResize函数实现图像缩放的方法。包括不同插值方式的效果对比,提供了一个完整的C语言示例代码,展示了如何加载图像、进行缩放处理并展示结果。

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

用到的函数:

cvResize

void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );

  作用:

    函数cvResize 重新调整图像src(或它的ROI),使它精确匹配目标dst(或其ROI)。

  参数列表:

  src 源图像

  dst 目标图像

  interpolation 修改、插补的方法,取值如下:

  ·CV_INTER_NN - 最近-邻居插补

  ·CV_INTER_LINEAR - 双线性插值(默认方法)

  ·CV_INTER_AREA - 像素面积相关重采样。当缩小突刺昂视。该方法可以避免波纹的出现。当放大图像是,类似于方法CV_INTER_NN。(It is the preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method. )

  ·CV_INTER_CUBIC - 双三次插值。

 

代码:

#include "stdafx.h"
#include<cv.h>
#include<highgui.h>

int main(int argc, char* argv[])
{
 IplImage *src =cvLoadImage("Lena.jpg");   

 IplImage *dst = 0;  

 double scale=0.5;  //缩放倍数


 CvSize dst_cvsize;   //目标图像尺寸
 dst_cvsize.width = src->width * scale;  //目标图像的宽为源图象宽的scale倍
 dst_cvsize.height=src->height * scale; //目标图像的高为源图象高的scale倍
 dst = cvCreateImage( dst_cvsize, src->depth, src->nChannels); //构造目标图象
 
 cvResize(src, dst, CV_INTER_LINEAR); //缩放源图像到目标图像
 
 cvNamedWindow( "src",   CV_WINDOW_AUTOSIZE ); //创建用于显示源图像的窗口
 cvNamedWindow( "dst",   CV_WINDOW_AUTOSIZE ); //创建用于显示目标图像的窗口
 cvShowImage( "src", src );  //显示源图像
 cvShowImage( "dst", dst );  //显示目标图像
 cvWaitKey(0);  

 
 cvReleaseImage(&src); 

 cvReleaseImage(&dst);

 cvDestroyAllWindows();

 

 return 0;
}

}

 

运行结果:

示例程序010--图像缩放

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值