您的位置:首页 > 运维架构

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

2017-12-02 21:18 302 查看
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);
}效果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: