Python + OpenCV 学习笔记(五)>>> 像素运算

版权声明:如需转载请标注 https://blog.csdn.net/weixin_40973138/article/details/84489399

1. 算数运算

注意两幅图像的像素大小要一致
进行图像像素之间的算术运算,首先要导入图像,读取其中信息:

m1 = cv.imread("/home/pi/Desktop/m1.jpg")
m2 = cv.imread("/home/pi/Desktop/m2.jpg")

a. 加:

def add_demo(m1, m2):
        dst = cv.add(m1, m2)
        cv.imshow('m1 + m2', dst)

b. 减:

def subtract_demo(m1, m2):
        dst = cv.subtract(m1, m2)
        cv.imshow('m1 - m2', dst)

c. 乘:

def multiply_demo(m1, m2):
        dst = cv.multiply(m1, m2)
        cv.imshow('m1 * m2', dst)

d. 除:

def divide_demo(m1, m2):
        dst = cv.divide(m1, m2)
        cv.imshow('m1 / m2', dst)

e. 求均值:

print cv.mean(m1)

f. 求方差:

print cv.meanStdDev(m1)

2. 逻辑运算

a. 与(取低值):

cv.bitwise_and(m1, m2)

b. 或(取高值):

cv.bitwise_or(m1, m2)

c. 非:

cv.bitwise_not(m1)

d. 异或:

cv.bitwise_xor(m1, m2)

3. 调节对比度和亮度

def contract_brightness_demo(image, c, b):  #c 为对比度,b 为亮度
        h, w, ch= image.shape               #h 为高,w 为宽,ch 为通道数
        blank = np.zeros([h, w, ch], image.dtype)
        dst = cv.addWeighted(image, c, blank, 1-c, b)
        cv.imshow('con-bri-demo', dst)

对比度调节原理:加大像素间值的差异
亮度调节原理:像素统一值叠加

cv.imshow('m2', m2)
contract_brightness_demo(m2, 1.5, 30)

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40973138/article/details/84489399