opencv学习(六)像素数值运算【加,减,乘,除,逻辑与,或,非,异或,平均值】,提升图片对比度与亮度

import cv2 as cv
import numpy as np


def add_photo(m1, m2):  # 图片数据加法
    dst = cv.add(m1, m2)
    cv.imshow("add_photo", dst)


def subtract_photo(m1, m2):  # 图片数据减法
    dst = cv.subtract(m1, m2)
    cv.imshow("subtract_photo", dst)


def divide_photo(m1, m2):  # 图片数据除法
    dst = cv.divide(m1, m2)
    cv.imshow("divide_photo", dst)


def multiply_photo(m1, m2):  # 图片数据乘法
    dst = cv.multiply(m1, m2)
    cv.imshow("multiply_photo", dst)


def others(m1, m2):  # 对图像数据求均值
    # M1 = cv.mean(m1)      # 求平均值
    M1, dev1 = cv.meanStdDev(m1)  # 求平均值以及方差
    M2, dev2 = cv.meanStdDev(m2)
    print("M1:", M1, "\n", M2)
    print("dev:", dev1, "\n", dev2)
    h, w = m1.shape[:2]
    img = np.zeros([h, w], np.uint8)
    m, dev = cv.meanStdDev(img)
    print(m, dev)


def logic_demo_and(m1, m2):  # 逻辑与
    dst = cv.bitwise_and(m1, m2)
    cv.imshow("and", dst)


def logic_demo_or(m1, m2):  # 逻辑或
    dst = cv.bitwise_or(m1, m2)
    cv.imshow("or", dst)


def logic_demo_not(m1):  # 逻辑非
    dst = cv.bitwise_not(m1)
    cv.imshow("not", dst)


def logic_demo_xor(m1, m2):  # 逻辑异或
    dst = cv.bitwise_xor(m1, m2)
    cv.imshow("xor", dst)


def contrast_lightness_demo(image, c, b):  # 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("lightness", dst)



src1 = cv.imread("D:\ophotos\linux.jpg")
src2 = cv.imread("D:\ophotos\win.jpg")
cv.namedWindow("image1", cv.WINDOW_AUTOSIZE)
cv.namedWindow("image2", cv.WINDOW_AUTOSIZE)
print(src1.shape)
print(src2.shape)
cv.imshow("image1", src1)
cv.imshow("image2", src2)
add_photo(src1, src2)
subtract_photo(src1, src2)
divide_photo(src1, src2)
multiply_photo(src1, src2)
others(src1, src2)
logic_demo_and(src1, src2)
logic_demo_not(src1)
logic_demo_or(src1, src2)
logic_demo_xor(src1, src2)
contrast_lightness_demo(src, 1.2, 100)
cv.waitKey(0)
cv.destroyAllWindows()

像素数值运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值