📜  使用 OpenCV 对图像进行算术运算Set-1(加法和减法)(1)

📅  最后修改于: 2023-12-03 14:49:44.153000             🧑  作者: Mango

使用 OpenCV 对图像进行算术运算 Set-1 (加法和减法)

OpenCV 是一个开源的计算机视觉库,它可以用于许多不同的应用领域,如图像处理、计算机视觉、机器学习等。本文将介绍如何使用 OpenCV 对图像进行算术运算,包括加法和减法。

加法运算

在 OpenCV 中,可以使用 cv2.add() 函数将两张图像加在一起。具体实现步骤如下:

  1. 将需要加在一起的两张图像读入内存,并转换为 numpy 数组。
  2. 使用 cv2.add() 函数将两张图像加在一起。
  3. 显示加和图像。
import cv2
import numpy as np

# 读入需要加在一起的两张图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

# 将图像转换为 numpy 数组
img1 = np.asarray(img1)
img2 = np.asarray(img2)

# 图像加法
result = cv2.add(img1, img2)

# 显示加和图像
cv2.imshow('Result', result)
cv2.waitKey(0)

注:加法运算并不会将两张图像的像素值相加,而是将它们的值相加并截至到图像像素值的最大值。如果超出了最大值,将自动截止到最大值,这意味着如果将两张亮度较高的图像加在一起,结果会更加亮。如果想要避免这种情况,可以使用 cv2.addWeighted() 函数,该函数可以对两张图像进行加权平均。

减法运算

在 OpenCV 中,可以使用 cv2.subtract() 函数将两张图像相减。具体实现步骤如下:

  1. 将需要相减的两张图像读入内存,并转换为 numpy 数组。
  2. 使用 cv2.subtract() 函数将两张图像相减。
  3. 显示相减图像。
import cv2
import numpy as np

# 读入需要相减的两张图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

# 将图像转换为 numpy 数组
img1 = np.asarray(img1)
img2 = np.asarray(img2)

# 图像减法
result = cv2.subtract(img1, img2)

# 显示相减图像
cv2.imshow('Result', result)
cv2.waitKey(0)

注:减法运算并不会将两张图像的像素值相减,而是将它们的值相减并截至到图像像素值的最小值。如果超出了最小值,将自动截止到最小值,这意味着如果将一张较暗的图像减去一张亮度较高的图像,结果会更加暗。