【OpenCV学习笔记】【函数学习】七(改变图像尺寸)
首先初始目标图像尺寸:
方法一:IplImage* dst= cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 );
分析:size.width & -2----size.width和-2做‘与’运算
从补码算起,我们知道计算机内存里面负数是以补码形式存储并参与运算的,那-2的补码是多少呢?在vc环境下,注意到cvsize结构体内成员变量是int型的,而vc里面int型是占4个字节的所以-2的补码是:
11111111 11111111 11111111 11111110
那么size.width & -2就是把最后一位width的最后一位置0,
下面分析为什么要把最后一位置为0
- 如果源图像的width为奇数,则通过和-2相与,最后一位设为0,相当于图像width减小了1,然后再除以2,刚好为源图像分配了一半的width
- 如果源图像的width为偶数,则通过和-2相与,该数值不变,然后除以2,也为源图像分配一半的width。
方法二:按比例缩放float scale = 0.723; //缩放倍数为0.723倍则定义:
CvSize dst_size;
dst_size.height = (int)(pSrc->height*scale);
dst_size.width = (int)(pSrc->width*scale);
IplImage* dst= cvCreateImage( dst_size,8, 1 );
方法三:按具体高宽
CvSize dst_size;
dst_size.height = 120;
dst_size.width = 60;
IplImage* dst= cvCreateImage( dst_size,8, 1 );
然后具体实施缩放
cvResiz(src,dst,CV_INTER_LINEAR );
插值方法:
CV_INTER_NN - 最近邻插值,
CV_INTER_LINEAR - 双线性插值 (缺省使用)
CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法..
CV_INTER_CUBIC - 立方插值.
注:
cvResize(src,dst)
必须先分配好空间,注意数据类型一致性,多数错误都是因为数据类型问题。
cvConvertScale(src,dst,scale,shift)
先分配好空间,注意数据类型,同为单通道,或多通道。
可以实现不同深度之间的转换,scale和shift要注意。
【OpenCV学习笔记】【函数学习】七(改变图像尺寸)相关推荐
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...
- OpenCV学习笔记(十七):图像修补:inpaint()
OpenCV学习笔记(十七):图像修补:inpaint() inpaint()函数 使用区域邻域在图像中还原选定区域. void inpaint( InputArray src, // 表示要修复的图 ...
- OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...
- OpenCV学习笔记(三):图像对比度、亮度调整源码
OpenCV学习笔记(三):图像对比度.亮度调整源码 主函数: #include <opencv2/opencv.hpp>using namespace cv;using namespac ...
- Kinect开发学习笔记之(七)骨骼数据的提取
Kinect开发学习笔记之(七)骨骼数据的提取 zouxy09@qq.com http://blog.csdn.net/zouxy09 我的Kinect开发平台是: Win7x86 + VS2010 ...
- 20171220-python学习笔记--函数类型
20171220-python学习笔记--函数类型 备注: #位置参数 #传入两个参数 def power(x, n):s = 1while n > 0:n = n - 1s = s * xre ...
- PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- JavaScript学习笔记——函数 Part4:向函数传递函数、从函数返回函数(函数是一等公民)
要点 函数是值,这个值就是函数引用 函数是一等公民:函数引用是一等值 可将函数引用赋给变量.含在数据结构(如对象)中.传递给其他函数或从其他函数返回 函数是一等公民 不要再认为函数是特殊的,有别于Ja ...
- Python3学习笔记之-学习基础(第三篇)
Python3学习笔记之-学习基础(第三篇) 文章目录 目录 Python3学习笔记之-学习基础(第三篇) 文章目录 一.循环 1.for循环 2.while循环 3.break,continue 二 ...
- 强化学习笔记-强化学习概述
强化学习笔记-强化学习概述 机器学习分类 强化学习与监督学习的异同点 强化学习基本原理 强化学习解决的是什么样的问题 强化学习分类 请分别解释随机性策略和确定性策略 回报.值函数.行为值函数三个指标的 ...
最新文章
- Flask web开发之路四
- kpc v0.8.3发布,跨框架的组件库解决方案
- 详解虚函数的实现过程之虚基类(4)
- linux week3
- webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名
- c#namespace
- Phthon学习---错误处理、调试和测试
- 超燃!奇安信首度对外公开内部网络攻防演习纪实片
- Docker入门之常用命令
- 【路径规划】基于matlab RRT算法求解机器人避障路径规划问题【含Matlab源码 319期】
- MongoDB之Robo3T客户端安装
- 密西根州立大学计算机qs分数,2020年密歇根州立大学QS世界排名
- Strust2 success sucess
- BUPT OJ143 Triangle
- 清华大学推荐:这32本书籍你看过几本?
- LeetCode刷题记 --- pta 7- 4
- 优秀的汽车后市场门店应该具备的数字化能力
- UE/UI/UCD/UED 区别
- 店盈通电商:拼多多发货地址不一样有关系吗?
- Windows安装VirtualBox教程(图文版)
热门文章
- C++ 虚函数表详解
- python保留字符串之外的_Python--字符串
- (秒杀项目) 4.7 缓存商品与用户
- 属性绑定v-bind指令
- 计算机组装内部线的整理,计算机组装与维护笔记整理.doc
- python读取csv数据出错_在python中读取csv文件时出现错误“no such file or directory”...
- 引用饼图echarts_3D 饼图在 VUE 中的实现
- 域名解析到指定端口_南京课工场IT培训:搭建nginx虚拟主机——基于域名、端口和IP...
- 浮点型的数字如何进行range_连接型CRM | 渠道经销订货数字化转型,5大关键角色的如何应用...
- 软件测试测试用例编写 不超过7步骤_软件测试(功能、接口、性能、自动化)详解...