04. 像素运算
前提是进行运算的两张图像必须像素大小一致且类型相同。
1. 算术运算
- 加减乘除
- 调节图像亮度
- 调节图像对比度
2. 逻辑运算
- 与或非
- 遮罩层控制
3. 代码层面知识点
- 常见图像混合
- 算法运算与几何运算
import cv2 as cv
import numpy as np
def add_demo(m1, m2):
dst = cv.add(m1, m2)
cv.imshow("add_demo", dst)
def subtract_demo(m1, m2):
dst = cv.subtract(m1, m2)
cv.imshow("subtract_demo", dst)
def divide_demo(m1, m2):
dst = cv.divide(m1, m2)
cv.imshow("divide_demo", dst)
def multiply_demo(m1, m2):
dst = cv.multiply(m1, m2)
cv.imshow("multiply_demo", dst)
def others(m1, m2):#均值
M1 = cv.mean(m1)
M2 = cv.mean(m2)
#M1, dev1 = cv.meanStdDev(m1)均值和方差
print(M1)
print(M2)
def logic_demo(m1, m2):
#dst = cv.bitwise_and(m1, m2)
#dst = cv.bitwise_or(m1, m2)
image = cv.imread("F:/tool/PyCharm/pic/test1.jpeg")
dst = cv.bitwise_not(image)
cv.imshow("logic demo", dst)
def contrast_brightness_demo(image, c, b):
h, w, ch = image.shape
blank = np.zeros([h, w, ch], image.dtype)
dst = cv.addWeighted(image, c, blank, 1-c, b)
cv.imshow("con_bri_demo", dst)
print("--------Hello Python--------")
src1 = cv.imread("F:/tool/PyCharm/pic/pic1.jpg")
src2 = cv.imread("F:/tool/PyCharm/pic/pic2.jpg")
print(src1.shape)
print(src2.shape)
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.imshow("image1", src1)
cv.imshow("image2", src2)
#logic_demo(src1, src2)
src = cv.imread("F:/tool/PyCharm/pic/test1.jpeg")
cv.imshow("image3", src)
contrast_brightness_demo(src, 1.2, 15)
#add_demo(src1, src2)
#subtract_demo(src1, src2)
#multiply_demo(src1, src2)
#divide_demo(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()