美文网首页
简单图像混合addWeighted

简单图像混合addWeighted

作者: 思思入扣 | 来源:发表于2019-06-25 17:17 被阅读0次

    1.图像混合
    图像的混合就是将两张图片按照一定比例混合到一起,所有的比例之和为1
    我们用 f0(x) 表示背景图, f1(x)表示前景图,用 g(x) 来表示输出图像,α表示比例( 0≤α≤1)


    图像混合公式

    函数调用:

    void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1)
    

    src1:图片1
    alpha:图片1的融合比例
    src2:图片2
    beta:图片2的融合比例,1-alpha
    gamma:偏差
    dst:输出图片
    dtype:输出阵列的可选深度,有默认值-1。;当两个输入数组具有相同的深度时,这个参数设置为-1(默认值),即等同于src1.depth()
    可以别表示为:dst = src1[I]alpha+ src2[I]beta + gamma

    public class ROIActivity extends BaseActivity {
    
        private ImageView ivROI;
        private Button btnRoi;
    
        private Mat bottomMat;
        private Bitmap bottomBitmap;
        private Mat markMat;
        private Bitmap markBitmap;
        private Mat roiMat;
        private Bitmap roiBitmap;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_roi);
            ivROI=findViewById(R.id.ivROI);
            btnRoi=findViewById(R.id.btnRoi);
            btnRoi.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    weighted();
                }
            });
        }
    
        private void weighted() {
            bottomMat=new Mat();
            markMat=new Mat();
            roiMat=new Mat();
            bottomBitmap=BitmapFactory.decodeResource(getResources(),R.mipmap.zhu);markBitmap=BitmapFactory.decodeResource(getResources(),R.mipmap.shuiyin);Utils.bitmapToMat(bottomBitmap,bottomMat);
            Utils.bitmapToMat(markBitmap,markMat);
            //bottomMat的0-markMat.rows()行,0-markMat.cols()列roiMat=bottomMat.submat(0,markMat.rows(),0,markMat.cols());
            //加权Core.addWeighted(roiMat,1,markMat,0.3,0.,roiMat);
            //转化为android识别的图像,注意宽高要和BottomMat一样roiBitmap=Bitmap.createBitmap(bottomMat.cols(),bottomMat.rows(), Bitmap.Config.RGB_565);
            Utils.matToBitmap(bottomMat,roiBitmap);
            ivROI.setImageBitmap(roiBitmap);
        }
    }
    

    相关文章

      网友评论

          本文标题:简单图像混合addWeighted

          本文链接:https://www.haomeiwen.com/subject/jvcxcctx.html