opencv中mask图像合成扩充数据集

来源:互联网 发布:公历转换农历算法 编辑:程序博客网 时间:2024/05/14 00:41
1.mask其实就是一个单通道的矩阵,利用mask可以方面的指定图像中那些像素需要进行处理,哪些不需要进行处理,mask中被标记成1的像素为需要处理的像素,运算过程中会进行处理,被标记为0 的像素不进行处理。依据这种原理可以将两张图像进行合成。

例如maskImg图像为三通道标志图像,bgImg为三通道的背景图像,merImg为合成之后的图像,首先要要找图像的掩膜,就是要确定图像中哪些部分的像素需要进行处理,在这里就是,标志图像的边缘是白色,标志本身是其他的颜色,标志图像的大小和背景图像一样,需要将仅仅包含标志的部分与背景图像进行合成。
Mat imageMerging(Mat maskImg, Mat bgImg){Mat merImg=maskImg.clone();Mat maskFunction=findMask(maskImg);Mat roiImg=merImg(Rect(0,0,bgImg.cols,bgImg.rows));bgImg.copyTo(roiImg,maskFunction);return merImg;}
下图依次是标准标注图像,随机背景的图像,最终合成的图像。标准标注图像首先确定标志的外接矩形,然后加上拉伸变换,旋转变化之后的图像合成效果。
       
0 0