简介
欢迎来到这个关于使用 OpenCV-Python 进行图像算术运算的教程!在本教程中,我们将介绍加法、减法和按位运算。在本教程结束时,你将对如何使用这些基本操作来处理图像有一个扎实的理解。
欢迎来到这个关于使用 OpenCV-Python 进行图像算术运算的教程!在本教程中,我们将介绍加法、减法和按位运算。在本教程结束时,你将对如何使用这些基本操作来处理图像有一个扎实的理解。
图像加法是将两个图像的像素值相加的过程。在 OpenCV 中,函数 cv2.add()
用于此目的。
在终端中打开 Python Shell
python3
使用 .imread
读取目标图像。
import cv2 as cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
使用 .add()
来聚合上一步中读取的两个图像。
result = cv2.add(img1, img2)
将结果写入文件。
cv2.imwrite('Image_Addition.jpg', result)
生成的图像 Image_Addition.jpg
看起来像这样:
这也是图像加法,但为了给出混合或透明的感觉,图像被赋予不同的权重。图像按照以下等式相加:
cv.addWeighted()
将此等式应用于图像。
使用 .addWeighted()
将等式应用于上一步中读取的图像。
result = cv2.addWeighted(img1,0.7,img2,0.3,0)
将结果写入文件。
cv2.imwrite('Image_Blending.jpg', result)
生成的图像 Image_Blending.jpg
看起来像这样:
图像减法用于查找两个图像之间的差异。它将一个图像的像素值从另一个图像中减去。在 OpenCV 中,你可以使用 cv2.subtract()
函数。
使用 .subtract()
将 image1 的像素值从 image2 中减去。
result = cv2.subtract(img1, img2)
将结果写入文件。
cv2.imwrite('Image_Subtraction.jpg', result)
生成的图像 Image_Subtraction.jpg
看起来像这样:
按位运算用于操作像素值的各个位。OpenCV 提供了诸如 cv2.bitwise_and()
、cv2.bitwise_or()
、cv2.bitwise_xor()
和 cv2.bitwise_not()
等函数来执行按位运算。
让我们看看每个操作的示例:
使用 .bitwise_and()
计算两个图像中像素值的按位与。
bitwise_and = cv2.bitwise_and(img1, img2)
使用 .bitwise_or()
计算两个图像中像素值的按位或。
bitwise_or = cv2.bitwise_or(img1, img2)
使用 .bitwise_xor()
计算两个图像中像素值的按位异或。
bitwise_xor = cv2.bitwise_xor(img1, img2)
使用 .bitwise_not()
计算一个图像中像素值的按位非。
bitwise_not_img1 = cv2.bitwise_not(img1)
将结果写入文件。
cv2.imwrite('Bitwise_AND.jpg', bitwise_and)
cv2.imwrite('Bitwise_OR.jpg', bitwise_or)
cv2.imwrite('Bitwise_XOR.jpg', bitwise_xor)
cv2.imwrite('Bitwise_NOT_Image1.jpg', bitwise_not_img1)
生成的图像看起来像这样:
Bitwise_AND.jpg
:Bitwise_OR.jpg
:Bitwise_XOR.jpg
:Bitwise_NOT_Image1.jpg
:恭喜!你现在已经学会了如何使用 OpenCV-Python 对图像执行算术运算。你已经了解了图像加法、减法和按位运算。这些基本操作对于图像处理任务非常有用,例如混合图像、检测变化以及遮蔽图像的特定区域。
继续练习并尝试不同的图像,以更好地理解这些操作的工作原理。祝你好运,编程愉快!