OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
未找到匹配项
图像算术运算

目标

  • 学习图像的几种算术运算,例如加法、减法、按位运算等。
  • 你将学习以下函数:cv.add()cv.subtract()等。

图像加法

可以使用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徽标不是矩形。所以你可以用按位运算来做。

尝试一下