目标
图像加法
可以用 OpenCV 函数 cv.add() 将两张图像相加。res = img1 + img2。两张图片应具有相同的深度和类型。
例如,考虑以下示例
let src1 = cv.imread("canvasInput1");
let src2 = cv.imread("canvasInput2");
let dst = new cv.Mat();
let mask = new cv.Mat();
let dtype = -1;
cv.add(src1, src2, dst, mask, dtype);
src1.delete(); src2.delete(); dst.delete(); mask.delete();
图像减法
可以用 OpenCV 函数 cv.subtract() 将两张图像相减。res = img1 - img2。两张图片应具有相同的深度和类型。请注意,当与 RGBA 图像一起使用时,Alpha 通道也会被减去。
例如,考虑以下示例
let src1 = cv.imread("canvasInput1");
let src2 = cv.imread("canvasInput2");
let dst = new cv.Mat();
let mask = new cv.Mat();
let dtype = -1;
cv.subtract(src1, src2, dst, mask, dtype);
src1.delete(); src2.delete(); dst.delete(); mask.delete();
按位运算
包括按位 AND、OR、NOT 和 XOR 运算。它们在提取图像的任何部分、定义和使用非矩形 ROI 等方面非常有用。下面我们将看到如何更改图像的特定区域的示例。
我想在图像上方放置 OpenCV 徽标。如果我添加两张图像,它会改变颜色。如果我混合它,我得到透明效果。但我想让它不透明。如果它是一个矩形区域,我可以使用 ROI,就像我们在上一章中所做的那样。但 OpenCV 徽标不是矩形。所以你可以用按位运算来做到。
尝试一下