Opencv3 tutorial_4图像之间的运算

图像之间的算数运算、逻辑运算

使用打开对应def

import cv2 as cv
import numpy as np


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


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


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


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


#def logic_demo(m1, m2):
def logic_demo1(m1):
    dst = cv.bitwise_not(m1)  # not 非,按位取反
    cv.imshow("bitwise_not_demo1", m1)


def logic_demo2(m2):
    # dst = cv.bitwise_and(m1, m2)  # and 与
    # dst = cv.bitwise_or(m1, m2)   # or 或
    dst = cv.bitwise_not(m2)
    # cv.imshow("bitwise_and_demo", dst)
    cv.imshow("bitwise_not_demo", m2)


def contrast_brightness_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("con-bri-demo", dst)


def others_demo(m1, m2):
    M1 = cv.mean(m1)      # 求像素的均值
    M2 = cv.mean(m2)
    print(M1)
    print(M2)


def others(m1, m2):
    M1, dev1 = cv.meanStdDev(m1)      # 求像素的方差和均值
    M2, dev2 = cv.meanStdDev(m2)
    print("dev1: %s"%dev1)         # 图像的方差 ,方差越大说明图像之间的差异性就越大。方差越小图像之间差异性越小,对比度越小。
    print("dev2: %s"%dev2)
    print(M1)
    print(M2)
print("----------------hi.python!---------------------------")
src1 = cv.imread("C:/Users/LENOVO/Desktop/test image/hello.jpg")
src2 = cv.imread("C:/Users/LENOVO/Desktop/test image/rgb.jpg")
print(src1.shape)
print(src2.shape)

src = cv.imread("C:/Users/LENOVO/Desktop/test image/Image_2020.jpg")
#cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)  # 创建一个window
#cv.imshow("input image", src)


#add_demo(src1, src2)
#subtract_demo(src1, src2)
#divide_demo(src1, src2)
#multiply_demo(src1, src2)
#contrast_brightness_demo(src, 1.5, 10)
#others_demo(src1, src2)
#others(src1, src2)
#logic_demo1(src1)
#logic_demo2(src2)
#logic_demo1(src1)
#logic_demo2(src2)
#cv.imshow("image1",src1)  # 通过窗口名字调用读取的图片到当前的窗口上面
#cv.imshow("image2",src2)
cv.waitKey(0)            # 告诉系统需要delay,等待用户的下一个操作
cv.destroyAllWindows()   # 响应操作以后就会释放内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值