OpenCV-python基础操作之像素之间的数组运算(加减乘除),大小相同的两张图片 ,应用调节亮度,调节对比度
像素之间进行加法运算操作:
# 代码描述: 像素之间的数组运算:加减乘除,调节亮度,调节对比度
#
# 创建时间: 2020-09-14
# 创建人: Wupke
# 修改时间:
# 版本:
import cv2 as cv
def add_demo(p1, p2): # 定义像素相加的操作函数
dst = cv.add(p1, p2)
cv.imshow("add_demo", dst)
src1 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/linux.jpeg") # 读取图片1
src2 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/aj.jpg") # 读取图片2
print(src1.shape) # 显示图片的信息
print(src2.shape)
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.namedWindow("image2", cv.WINDOW_AUTOSIZE)
cv.imshow("image1", src1)
cv.imshow("image2", src2)
add_demo(src1, src2) # 调用叠加函数
cv.waitKey(0) # 保持对话框
cv.destroyWindow('all') # 清除内存
读取两张大小相同的图像:
像素叠加的效果:
减:
# 代码描述: 大小相同两张图片,像素之间进行数组减运算
# 原理:
# 创建时间: 2020-09-14
# 创建人: Kenn Wu
# 修改时间:
# 版本:
import cv2 as cv
def subtract_demo(p1, p2): # 定义像素相减的操作函数
dst = cv.subtract(p1, p2)
cv.imshow("subtract_demo", dst)
src1 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/linux.jpeg") # 读取图片
src2 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/aj.jpg") # 读取图片
print(src1.shape)
print(src2.shape)
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.namedWindow("image2", cv.WINDOW_AUTOSIZE)
cv.imshow("image1", src1) # 显示图片
cv.imshow("image2", src2) # 显示图片
subtract_demo(src1, src2) # 调用减法函数
cv.waitKey(0) # 保持对话框
cv.destroyWindow('all') # 清除内存
像素之间相减的效果:
@
@
乘:
# 代码描述: 大小相同两张图片,像素之间进行乘法运算
# 原理:
# 创建时间: 2020-09-14
# 创建人: Kenn Wu
# 修改时间:
# 版本:
import cv2 as cv
def multiply_demo(p1, p2): # 定义像素间乘法操作
dst = cv.multiply(p1, p2)
cv.imshow("multiply_demo", dst)
src1 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/linux.jpeg") # 读取图片
src2 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/aj.jpg") # 读取图片
print(src1.shape)
print(src2.shape)
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.namedWindow("image2", cv.WINDOW_AUTOSIZE)
cv.imshow("image1", src1) # 显示图片
cv.imshow("image2", src2) # 显示图片
multiply_demo(src1, src2) # 调用乘法法操作
cv.waitKey(0) # 保持对话框
cv.destroyWindow('all') # 清除内存
像素相乘效果图:
除:
# 代码描述: 大小相同两张图片,像素之间进行除法运算
# 原理:
# 创建时间: 2020-09-14
# 创建人: Kenn Wu
# 修改时间:
# 版本:
import cv2 as cv
def divide_demo(p1, p2): # 定义像素除法的操作
dst = cv.divide(p1, p2)
cv.imshow("divide_demo", dst)
src1 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/linux.jpeg") # 读取图片
src2 = cv.imread("../OpenCV_Files/pictures_for_OpenCV/aj.jpg") # 读取图片
print(src1.shape)
print(src2.shape)
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.namedWindow("image2", cv.WINDOW_AUTOSIZE)
cv.imshow("image1", src1) # 显示图片
cv.imshow("image2", src2) # 显示图片
divide_demo(src1, src2) # 调用除法操作
cv.waitKey(0) # 保持对话框
cv.destroyWindow('all') # 清除内存