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语言实现最好。本人新手求老手指教 展开
 我来答
匿名用户
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(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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式