opencv cvZero() cvAddWeighted() cvConvertScale()
2015-07-07 13:29
696 查看
/* Clears all the array elements (sets them to 0) */ CVAPI(void) cvSetZero( CvArr* arr ); #define cvZero cvSetZero
cvZero()函数会将数组中的所有通道的所有元素的值都设置为0
################################################3
/* dst = src1 * alpha + src2 * beta + gamma */ CVAPI(void) cvAddWeighted( const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst );
cvAddWeighted函数是一个加权相加函数,它可用于一个图像同另一个图像的融合
1.源图像src1和src2以及目标图像dst的像素类型必须相同,通道数也必须相同
2.结果图像dst和源图像src1和src2可能是不同尺寸,但是它们的ROI必须统一尺寸
3.参数alpha是src1的融合强度,beta是src2的融合强度
##################################################
/* Performs linear transformation on every source array element: dst(x,y,c) = scale*src(x,y,c)+shift. Arbitrary combination of input and output array depths are allowed (number of channels must be the same), thus the function can be used for type conversion */ CVAPI(void) cvConvertScale( const CvArr* src, CvArr* dst, double scale CV_DEFAULT(1), double shift CV_DEFAULT(0) ); #define cvCvtScale cvConvertScale #define cvScale cvConvertScale #define cvConvert( src, dst ) cvConvertScale( (src), (dst), 1, 0 )
cvConvertScale函数共有两个功能
1.将源图像的数据类型转变成目标图像的数据类型。例如,如果我们有一个8位的RGB灰度图像并(ˇ?ˇ) (ˇ?ˇ) 想把它变成16位有符号的图像,就可以调用函数cvConvertScale()来做这个工作
2.对图像数据执行线性变换。在转换成新的数据类型之后,每个像素值将乘以scale值,然后将shift值加到每个像素上
相关文章推荐
- shell基础学习-难点重点学习
- zabiix监控磁盘io
- OpenWrt arp 命令发布
- linux的gz解压缩
- linux学习笔记 (十五)less命令
- LVS+KeepAlived,RabbitMQ高可用负载均衡 推荐
- Tomcat集群问题记录
- Linux多网卡上网问题解决方法
- Auto property synthesis will not synthesize property 'delegate'; it will be implemented by its super
- 08-nginx网站的配置过程记录
- Linux Top 命令解析 比较详细
- linux cmd
- 【嵌入式开发】写入开发板Linux系统-模型S3C6410
- centos git 升级
- Linux常用命令
- IIS网站本机可以访问,局域网其他机器无法访问
- [转载]linux添加静态路由表,重启继续生效
- Linux文件特殊权限
- linux 下编译 vlc
- Ubuntu 14.04.02 安装openvswitch-2.3.1