OpenCV—像素运算

算术运算与逻辑运算

加:cv.add(src1, src2, dst=None, mask=None, dtype=None) 
减:cv.subtract(src1, src2, dst=None, mask=None, dtype=None) 
乘:cv.divide(src1, src2, dst=None, scale=None, dtype=None) 
除:cv.multiply(src1, src2, dst=None, scale=None, dtype=None):
与:cv.bitwise_and(src1, src2, dst=None, mask=None)
或:cv.bitwise_or(src1, src2, dst=None, mask=None)
非:cv.bitwise_not(src, dst=None, mask=None)

调整图像对比度几及亮度

cv.addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)

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 and_demo(m1, m2):
    b_and = cv.bitwise_and(m1, m2)
    cv.imshow("and",b_and)


def or_demo(m1, m2):
    b_or = cv.bitwise_or(m1, m2)
    cv.imshow("or",b_or)


def not_demo(m1):
    b_not = cv.bitwise_not(m1)
    cv.imshow("not",b_not)


# 调整图像对比度几及亮度
def contrast_bright_demo(img, c, b):
    h, w, ch = img.shape
    blank = np.zeros([h, w, ch], img.dtype)
    dest = cv.addWeighted(img, c, blank, 1-c, b)  # 调整亮度和对比度
    cv.imshow("con-br-demo",dest)


src1 = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg")
src2 = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/1.jpg")
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)


add_demo(src1, src2)
subtract_demo(src1, src2)
divide_demo(src1, src2)
multiply_demo(src1, src2)
and_demo(src1, src2)
or_demo(src1, src2)
not_demo(src1)
contrast_bright_demo(src1, 10, 0)


cv.waitKey(0)
cv.destroyAllWindows()

效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值