opencv 矩阵与一个常数相乘的 两种实现方法
2016-10-24 10:25
555 查看
转载 : http://blog.csdn.net/yanzi1225627/article/details/7575245
第一种:参考http://www.opencv.org.cn/index.php/Cxcore%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C#ConvertScale
用函数cvConvertScale();
void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );
src输入数组.dst输出数组scale比例因子.shift该加数被加到输入数组元素按比例缩放后得到的元素上
函数 cvConvertScale 有多个不同的目的因此就有多个同义函数(如上面的#define所示)。该函数首先对输入数组的元素进行比例缩放,然后将shift加到比例缩放后得到的各元素上,即: dst(I)=src(I)*scale + (shift,shift,...),最后可选的类型转换将结果拷贝到输出数组。
多通道的数组对各个通道是独立处理的。
类型转换主要用舍入和溢出截断来完成。也就是如果缩放+转换后的结果值不能用输出数组元素类型值精确表达,就设置成在输出数组数据轴上最接近该数的值。
如果 scale=1, shift=0 就不会进行比例缩放. 这是一个特殊的优化,相当于该函数的同义函数名:cvConvert 。如果原来数组和输出数组的类型相同,这是另一种特殊情形,可以被用于比例缩放和平移矩阵或图像,此时相当于该函数的同义函数名:cvScale。
如何在matlab下要实现矩阵A = B*a,A、B为矩阵,a为系数,则在opencv下是 cvConvertScale(B,A,a,0); 如果要实现A = B*a + b ,在opencv下既是:cvConvertScale(B,A,a,b)
第二种方法:参考http://hi.baidu.com/262035983/blog/item/6f9a8d51b51cea140cf3e3ad.html,
用函数cvAddWeighted()来实现。
void cvAddWeighted(const CvArr* src1,double alpha,const CvArr* src2,double beta,double gamma,CvArradded to each sum* dst);//带权相加相当于dst(x,y) = alpha* src1(x,y) + beta* src2(x,y) + gamma , dst为输出矩阵。
第一种:参考http://www.opencv.org.cn/index.php/Cxcore%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C#ConvertScale
用函数cvConvertScale();
void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );
src输入数组.dst输出数组scale比例因子.shift该加数被加到输入数组元素按比例缩放后得到的元素上
函数 cvConvertScale 有多个不同的目的因此就有多个同义函数(如上面的#define所示)。该函数首先对输入数组的元素进行比例缩放,然后将shift加到比例缩放后得到的各元素上,即: dst(I)=src(I)*scale + (shift,shift,...),最后可选的类型转换将结果拷贝到输出数组。
多通道的数组对各个通道是独立处理的。
类型转换主要用舍入和溢出截断来完成。也就是如果缩放+转换后的结果值不能用输出数组元素类型值精确表达,就设置成在输出数组数据轴上最接近该数的值。
如果 scale=1, shift=0 就不会进行比例缩放. 这是一个特殊的优化,相当于该函数的同义函数名:cvConvert 。如果原来数组和输出数组的类型相同,这是另一种特殊情形,可以被用于比例缩放和平移矩阵或图像,此时相当于该函数的同义函数名:cvScale。
如何在matlab下要实现矩阵A = B*a,A、B为矩阵,a为系数,则在opencv下是 cvConvertScale(B,A,a,0); 如果要实现A = B*a + b ,在opencv下既是:cvConvertScale(B,A,a,b)
第二种方法:参考http://hi.baidu.com/262035983/blog/item/6f9a8d51b51cea140cf3e3ad.html,
用函数cvAddWeighted()来实现。
void cvAddWeighted(const CvArr* src1,double alpha,const CvArr* src2,double beta,double gamma,CvArradded to each sum* dst);//带权相加相当于dst(x,y) = alpha* src1(x,y) + beta* src2(x,y) + gamma , dst为输出矩阵。
相关文章推荐
- opencv 矩阵与一个常数相乘的 两种实现方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- opencv 矩阵与一个常数相乘的 两种实现方法
- opencv矩阵与一个常数相乘的两种实现方法
- 矩阵相乘的两种实现方法
- 实现一个简单的 成绩排序(两种方法)
- 遇到的一个设计问题,两种方法的实现
- 在DWR中实现直接获取一个JAVA类的返回值的两种方法
- 在DWR中实现直接获取一个JAVA类的返回值的两种方法
- Opencv2--颜色缩减(两种方法实现 1.迭代器 2.指针)
- 矩阵相乘的三种方法(java实现)
- .NET一个线程更新另一个线程的UI(两种实现方法及若干简化)
- JAVA线程之一:实现一个线程的两种方法
- 利用一个硬件定时器实现多个虚拟定时器的两种方法
- 两种不同的方法来实现一个两列布局
- 实现一个线程的两种方法【转载】
- js读写cookie实现一个底部广告浮层效果的两种方法
- 一个关于多线程的简单例子(两种实现方法)