【opencv学习之二十】图像基本运算

来源:互联网 发布:3000左右手表推荐知乎 编辑:程序博客网 时间:2024/05/22 13:35

opencv的图像基本运算加减乘除与或非等操作,直接代码了:

void imgOperate()//14.图像基本运算{    Mat img2 = imread("D:/ImageTest/logo.png");    Mat img1= imread("D:/ImageTest/12.jpg");    Mat dstAdd,dstSub,dstMul,dstDiv,dstAnd,dstOr,dstNot,dstXor;  //存储结果    imshow("img1", img1);    imshow("img2", img2);    //1.图像加法    dstAdd= img1 + img2; //待操作的两张图片的尺寸和类型需一样.效果同add(),大于255取255    //    add(img1, img2, dstAdd);//待操作的两张图片的尺寸和类型需一样.效果同'+',大于255取255    //    addWeighted(    //                img1,       //输入图片1,    //                0.3,          //图片1的融合比例    //                img2,      //输入图片2    //                0.1,          //图片2的融合比例    //                1,             //偏差    //                dstAdd);        //输出图片    //    addWeighted 函数实现图片的线性融合,    //    dst(I)=src1(I)*alpha+src2(I)*beta+gamma    //    所有的数组必须的相同的类型相同的大小(或ROI大小)    //2.图像减法    dstSub = img1 - img2; //负数取0    //subtract(img1, img2, dstSub);//同上    // absdiff(img1, img2, dstSub);//负数取绝对值    //dst(I)c = abs(src(I)c - valuec).    //3.图像乘除法    dstMul = 5 * img1 ; //大于255取255    dstDiv = img1 / 5;    //4.图像逻辑运算    bitwise_and(img1, img2, dstAnd);    bitwise_or(img1, img2, dstOr);    bitwise_not(img1, dstNot);    bitwise_xor(img1, img2, dstXor);    imshow("dst add", dstAdd);    imshow("dst sub", dstSub);    imshow("dst mul", dstMul);    imshow("dst div", dstDiv);    imshow("dst and", dstAnd);    imshow("dst or", dstOr);    imshow("dst not", dstNot);    imshow("dst xor", dstXor);    waitKey(0);}
效果如下: