opencv中怎么将一张用mask处理过的图添加到另一张图上,两张图合并成一张。
bk被加的图,A任一图,图C=copy(A,C,mask),mask由差分产生(且为二值),不规则,想得到bk=bk+C,只要C中的图像部分加到bk中,被掩盖的不要加进去...
bk被加的图,A任一图,图C=copy(A,C,mask),mask由差分产生(且为二值),不规则,想得到bk=bk+C,只要C中的图像部分加到bk中,被掩盖的不要加进去。用作背景提取的,如果有好的背景提取方法也收。《基于帧间差分背景模型的运动物体检测与跟踪》这个的c语言实现最好。本人新手求老手指教
展开
1个回答
2012-06-27
展开全部
void cvAnd( const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL );
src1 第一个原数组
src2 第二个原数组
dst 输出数组
mask 操作复盖面( 8-bit 单通道数组);只有复盖面指定的输出数组被修改
函数 cvAnd 计算两个数组的每个元素的按位逻辑与:
dst(I)=src1(I)&src2(I) if mask(I)!=0对浮点数组按位表示操作是很有利的。
src1 第一个原数组
src2 第二个原数组
dst 输出数组
mask 操作复盖面( 8-bit 单通道数组);只有复盖面指定的输出数组被修改
函数 cvAnd 计算两个数组的每个元素的按位逻辑与:
dst(I)=src1(I)&src2(I) if mask(I)!=0对浮点数组按位表示操作是很有利的。
追问
如果src1(l)和src2(I)都为非零值(不是黑的)但是两个有不相等,那么det(l)的值是?src1(I)的值还是src2(I)的值,还是两个都不是
追答
sorry,cvAnd里是用按位与计算的,
你的问题里应该用的是cvAdd:
void cvAdd( const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL );
src1
第一个原数组
src2
第二个原数组
dst
输出数组
mask
操作的复盖面, 8-bit单通道数组; 只有复盖面指定的输出数组被修改。
函数 cvAdd 加一个数组到别一个数组中:
dst(I)=src1(I)+src2(I) if mask(I)!=0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询