PythonOpenCV-图像运算
简介
在Python中,OpenCV使用NumPy数组表示图像,可以很方便地进行运算。主要包括加法运算、加权加法运算和位运算。
1. 加法运算
加法运算符“+”和cv2.add()函数可用于执行图像的加法运算。
- 用“+”运算符执行两个图像相加时,如果两个图像像素相加大于256,则会将其按256取模;
- 用cv2.add()函数执行两个图像相加时,如果两个图像像素相加大于256,则取255。
代码示例
import cv2 as cv img1 = cv.imread('lena.jpg',cv.IMREAD_REDUCED_COLOR_2) img2 = cv.imread('opencvlog.jpg',cv.IMREAD_REDUCED_COLOR_2) img3 = img1 + img2 # 两张图片尺寸大小必须一致 img4 = cv.add(img1, img2) cv.imshow("img1 + img2", img3) cv.imshow("add(img1, img2)", img4) cv.waitKey(0)
运行结果

2. 加权加法运算
函数原型
dst = cv2.addWeighted(src1,alpha,src2,beta,gamma) # 参数 # alpha 和 1beta 为权重 # gamma 为附加值 # 计算公式 # dst = src1 * alpha + src2 * beta + gamma
代码示例
import cv2 as cv img1 = cv.imread('lena.jpg',cv.IMREAD_REDUCED_COLOR_2) img2 = cv.imread('opencvlog.jpg',cv.IMREAD_REDUCED_COLOR_2) img3 = cv.addWeighted(img1, 0.7, img2, 0.3, 0) cv.imshow("addWeighted", img3) cv.waitKey(0)
运行结果
3. 位运算
OpenCV位运算函数
- cv2.bitwise_add(src1, src2[, mask]) : mask对应的位不为0时,图像src1和src2执行按位与操作。
- cv2.bitwise_or(src1, src2[, mask]) : mask对应的位不为0时,图像src1和src2执行按位或操作。
- cv2.bitwise_not(src1[, mask]) : mask对应的位不为0时,图像src1执行按位取反操作。
- cv2.bitwise_xor(src1, src2[, mask]) : mask对应的位不为0时,图像src1和src2执行按位异或操作。
代码示例
import cv2 as cv img1 = cv.imread('lena.jpg',cv.IMREAD_REDUCED_COLOR_2) img2 = cv.imread('opencvlog.jpg',cv.IMREAD_REDUCED_COLOR_2) img3 = cv.bitwise_and(img1, img2) img4 = cv.bitwise_or(img1, img2) img5 = cv.bitwise_not(img1) img6 = cv.bitwise_xor(img1, img2) cv.imshow("and", img3) cv.imshow("or", img4) cv.imshow("not", img5) cv.imshow("xor", img6) cv.waitKey(0)
运行结果
/*-------------------------------------------------------------------------------------------------------
笔者说明:
该笔记来源于本人学习Python + OpenCv时的资料,
分享出来只是为了供大家学习,并且为了自己以后想要用的时候方便寻找。
时间:2023年4月15日
------------------------------------------------------------------------------------------------------------*/