opencv之改变图像尺寸
来源:互联网 发布:c语言控制鼠标点击 编辑:程序博客网 时间:2024/05/01 16:36
OpenCV改变图像大小的操作
OpenCV改变图像大小的操作有两类:resize与图像金字塔,但是这两类操作差别还是比较大的。
一、resize
函数原型
void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
各个参数的意义比较直观,但是需要注意的是dsize与fx和fy必须不能同时为零,也就是说要么dsize不为零而fx与fy同时可以为0,要么dsize为0而fx与fy不同时为0;resize函数的目标大小可以是任意的大小,可以不保持长宽比率,删除的像素或者新增的像素值通过interpolation(内插)控制;
update:fx,fy分别指水平和垂直方向的比率;如果dsize
如果dsize不为零,fx,fy会自动计算:fx=dsize.width/src.cols;fy=dsize.height/src.rows;
因此dsize和(fx,fy)只需设置其中一个,另外一个置为零就可以了~~
二、图像金字塔
pyrDown与pyrUp分别表示向下降采样与向上升采样,但是二者并不是互为逆操作;
void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size(), int border-
Type=BORDER_DEFAULT )
void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size(), int border-
Type=BORDER_DEFAULT )
这两个操作实现图像金字塔的经典操作,他们仅仅是分别代表一次采样操作,也就是说,向下(或者向上)进行相邻层次的金字塔采样,调用一次pyrDown函数只能降低到原图像尺寸的1/2;反之,调用pyrUp目标图像则为原图像尺寸的2倍。因为它们内部都给定了一次采样尺寸的约束。也就是说采样之后,长宽比基本是不变的。
例子:
void ResizeDemo()
{
//将原图像变为32*32,长宽比被改变了
}
void PyrDown()
{
//金字塔向下或者向上采样操作 ,基本不改变图像长宽比率
}
总结:resize可以一次性将原图像变为任意不为0的尺寸,适合用来做归一化图像操作;而pyrDown与pyrUp适合做长宽比率不变得操作,且调用一次只能长和宽只能变为原来的1/2或者2倍,也即是说面积变为原来的1/4或者4倍。
转载自:http://blog.sina.com.cn/s/blog_4b0020f30101cgok.html
- opencv之改变图像尺寸
- OpenCv中改变图像尺寸
- OpenCv中改变图像尺寸
- opencv改变图像的尺寸
- OPENCV入门教程八:resize改变图像尺寸
- opencv中用Resize和图像金字塔改变尺寸的区别
- 【OpenCV学习笔记】【函数学习】七(改变图像尺寸)
- opencv对图像的旋转操作以及尺寸改变
- OpenCV学习之图像尺寸变换
- opencv:图像尺寸调整
- python opencv 图像尺寸变换
- 对图像尺寸重置 opencv
- python opencv 图像尺寸变换
- python opencv 图像尺寸变换
- opencv 改变图像对比度
- OpenCV之改变图像的对比度和亮度
- opencv图像处理之轮廓外背景颜色改变
- vfp改变图像尺寸的大小
- 【BZOJ 1202】【HNOI 2005】 狡猾的商人
- CSS清除浮动_清除float浮动
- 用 Python 编写网络爬虫 笔记
- Android之在linux环境不通过TAG快速过滤日志
- C实例---二维数组(指针实现)
- opencv之改变图像尺寸
- Python爬虫中的Get和Post方法
- Fragment + RadioGroup 实现类似于Tab的效果
- 并查集C++源码
- PAT 1011 A+B和C
- PHP检测文件方法,类方法是否存在
- directx初第七卷
- 算法提高 盾神与条状项链
- directx初第八卷