opencv改变图像大小cvResize和resize
2016-01-27 15:59
309 查看
在实现图像窗口展示的时候,经常出现图像过大或过小而无法有效的展示全图,opencv提供了cvResize()和resize()两个函数进行相应的缩放操作
默认图片的坐标
1、cvResize:函数原形
其中interpolation 为修改、插补的方法,取值如下:
·CV_INTER_NN - 最近-邻居插补
·CV_INTER_LINEAR - 双线性插值(默认方法)
·CV_INTER_AREA - 像素面积相关重采样。当缩小图像时,该方法可以避免波纹的出现。当放大图像时,类似于方法CV_INTER_NN。
·CV_INTER_CUBIC - 双三次插值。
示例:
2、resize:函数原形
注:dsize与(fx,fy)不能同时为0
示例:
cvResize常用于IplImage操作,resize常用于Mat操作。
默认图片的坐标
1、cvResize:函数原形
CVAPI(void) cvResize( const CvArr* src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_LINEAR ));
其中interpolation 为修改、插补的方法,取值如下:
·CV_INTER_NN - 最近-邻居插补
·CV_INTER_LINEAR - 双线性插值(默认方法)
·CV_INTER_AREA - 像素面积相关重采样。当缩小图像时,该方法可以避免波纹的出现。当放大图像时,类似于方法CV_INTER_NN。
·CV_INTER_CUBIC - 双三次插值。
示例:
<pre name="code" class="cpp">int main() { IplImage *src = cvLoadImage("1.jpg"); IplImage *dst; CvSize size; double scale = 0.5; //缩放的倍数 size.width = src->width*scale; size.height = src->height*scale; dst = cvCreateImage(size, src->depth, src->nChannels); cvResize(src, dst, CV_INTER_CUBIC); cvNamedWindow("src", CV_WINDOW_AUTOSIZE); cvNamedWindow("dst", CV_WINDOW_AUTOSIZE); cvShowImage("src", src); cvShowImage("dst", dst); cvWaitKey(0); cvReleaseImage(&src); cvReleaseImage(&dst); cvDestroyWindow("src"); cvDestroyWindow("dst"); return 0; }
2、resize:函数原形
CV_EXPORTS_W void resize( InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR );同理interpolation也是相应的修改、插补的方法,有最近邻、双线性、双三次、基于像素区域关系、兰索斯插值种方法,因为没用到过,我一般采用默认,原理不太清楚。
注:dsize与(fx,fy)不能同时为0
示例:
<pre name="code" class="cpp">int main() { Mat img = imread("1.jpg",1); //缩放 double scale = 0.5; Size dsize = Size(img.cols*scale, img.rows*scale); Mat img2 = Mat(dsize, CV_32S); resize(img, img2, dsize); imshow("img", img); imshow("img2", img2); waitKey(0); return 0; //或者来直接的 //Mat img = imread("1.jpg", 1); //Mat img2; //resize(img,img2,Size(img.cols*scale,img.rows*scale)); //缩小为1/2 //resize(img, img2, Size(20, 20)); //缩放到任意尺寸,20*20 }
cvResize常用于IplImage操作,resize常用于Mat操作。
相关文章推荐
- Nopcommerce主要的技术
- 网站更换HP服务器配置的建议
- Nginx配置编写时支持逻辑运算与大小写字母转换的方法
- log4j.properties详解与例子
- 老杨聊架构:每个架构师都应该研究下康威定律
- 老杨聊架构:每个架构师都应该研究下康威定律
- Linux启动网卡时出现RTNETLINK answers File exists错误解决方法
- spark-shell - 将结果保存成一个文件
- 在openfiler下添加新的硬盘作为iSCSI存储
- Nginx安装以及常用的代理机制
- Spring+struts联网正常,断网启动报错:java.net.UnknownHostException: struts.apache.org
- Hadoop温故(一)基础篇
- autoPro的安装过程
- 正确配置Linux系统ulimit/nproc值的方法
- option配置
- Linux 用户打开进程数的调整
- linux学习笔记一----------文件相关操作
- 基于图片驱动的C/S架构自动化测试技术 - Sikuli
- setsockopt用法详解
- Nginx服务器中限制连接数与限制请求的模块配置教程