OpenCV學習心得(6) -- 圖像的縮放

原创 2012年03月21日 19:30:43

轉載請著名出處與作者

OpenCV提供了一個實現圖像縮放的函數:cv::resize

void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )

dsize為縮放目的的寬度和高度信息.如果此參數為0(可以使用cv::Size()得到0 size),則根據fx和fy計算獲取.

fx與fy為寬度和高度的縮放比例.如果此參數為0則根據dsize計算獲取.

注意:resize的結果與dsize,fx,fy有關,與dst的預設值沒有關係,函數會重置dst的大小.

interpolation為縮放時填充的類型,默認情況下是雙線性填充.有下面的值可以選擇:

INTER_NEAREST 臨近元素插值法, 

INTER_LINEAR 雙線性差值法, 

INTER_CUBIC 立方差值法,

INTER_AREA 像素關係重採樣法,縮小圖像的時候此法可避免波紋出現,

INTER_LANCZOS4 lanczos4插入法


類中的函數如下:

//!伸縮圖片,ROI會被重置為整個新圖片,Resize函數針對整個圖片進行處理.
	//!rate為伸縮比率.interpolation為填充類型,可以為下面的值:
	//!INTER_NEAREST 臨近元素插值法, INTER_LINEAR 雙線性差值法, INTER_CUBIC 立方差值法,INTER_AREA 像素關係重採樣法,縮小圖像的時候此法可避免波紋出現,INTER_LANCZOS4 lanczos4插入法
	bool Resize(double rate,int interpolation);
	//!伸縮圖片,ROI會被重置為整個新圖片,s為新圖像的寬高.
	bool Resize(const cv::Size &s,int interpolation);
	//!伸縮圖片,ROI會被重置為整個新圖片,width為新圖像的寬,height為新圖像的高.
	bool Resize(int width,int height ,int interpolation);
	//!伸縮圖片,ROI會被重置為整個新圖片,width為新圖像的寬.此函數會鎖定長寬比,按比例根據寬度值縮放圖片.
	bool Resize(int width,int interpolation);
bool COpenCVImage::Resize(double rate,int interpolation)
{
	cv::resize(m_src,m_src,cv::Size(),rate,rate,interpolation);
	SetWholeAsROI();
	m_modifyed_for_draw=true;
	return true;
}
bool COpenCVImage::Resize(const cv::Size &s,int interpolation)
{
	cv::resize(m_src,m_src,cv::Size(s),0,0,interpolation);
	SetWholeAsROI();
	m_modifyed_for_draw=true;
	return true;
}
bool COpenCVImage::Resize(int width,int height ,int interpolation)
{
	return Resize(cv::Size(width,height),interpolation);
}
bool COpenCVImage::Resize(int width,int interpolation)
{
	return Resize(width,(int)(((double)m_src.rows)*((double)width/(double)m_src.cols)+0.5), interpolation);
}



OpenCV学习笔记-尺寸调整

尺寸调整应用到的函数为:Resize 图像大小变换 void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LI...
  • superdont
  • superdont
  • 2011年08月04日 22:03
  • 13381

python opencv 图像尺寸变换

利用python opencv中的  cv.Resize(源,目标,变换方法)就可以实现变换为想要的尺寸了 源文件:就不用说了 目标:你可以对图像进行倍数的放大和缩小  也可以直接的输入尺寸大小 变换...
  • u012192662
  • u012192662
  • 2013年12月13日 15:26
  • 43024

Python下opencv使用笔记(三)(图像的几何变换)

写在之前 二维与三维图像的几何变换在计算机图形学上有重要的应用,包括现在的许多图像界面的切换、二维与三维游戏画面控制等等都涉及到图像几何变换,就比如说在三维游戏中,控制角色三维移动的时候,画面是要跟...
  • on2way
  • on2way
  • 2015年07月08日 11:18
  • 13263

OpenCV中cvResize函数图象放缩

图像大小变换void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );src:输入图像. dst...
  • Augusdi
  • Augusdi
  • 2013年06月03日 10:54
  • 35036

opencv-图像缩放

图像大小变换 void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR ); src输入图像.ds...
  • tianzhaixing
  • tianzhaixing
  • 2013年07月28日 11:25
  • 1683

机器学习-1 初步认识机器学习、监督学习和非监督学习

一直对机器学习大数据方面的技术感兴趣,平时也在持续关注相关信息。但是,经过很长一段时间之后,发现,这种碎片化的学习只能停留在浅尝辄止,知道、听说过和了解的基础上,很难对技术有一个系统化的认识、全面而深...
  • u013279509
  • u013279509
  • 2017年02月21日 10:36
  • 404

Oracle 學習心得

一、定位 oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,...
  • rk542190440
  • rk542190440
  • 2013年06月23日 21:03
  • 333

SQLite學習心得分享<一>

~*~~*~~*~~*~~*~~*本文主要是分享自己學習SQLite數據庫語言過程中的一些基礎知識,運用技巧,僅供參考,參考過程如有錯誤望不吝賜教*~~*~~*~~*~~*~~*~...
  • LeoChen_LC
  • LeoChen_LC
  • 2017年07月15日 11:30
  • 269

5家机器学习的创业公司

Alpine data Labs:Greenplum的子公司(EMC是其投资者之一),主要研究方向是预测分析,其软件可以嵌入到公司内部的数据存储中(无论是Hadoop还是其它任意流行的数据库)。通过绘...
  • wozaijsdx
  • wozaijsdx
  • 2013年08月16日 14:39
  • 790

C# 图片无损压缩

///     /// 无损压缩图片     ///     /// 原图片     /// 压缩后保存位置     /// 高度     ///     /// 压缩质量...
  • oasis19880125
  • oasis19880125
  • 2017年11月27日 21:34
  • 10
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV學習心得(6) -- 圖像的縮放
举报原因:
原因补充:

(最多只允许输入30个字)