像素运算

(src1, alpha, src2, beta, gamma)
图像混合,alpha, beta为这两张图片的权重
gamma, 图1与图2作和后添加的数值. 不要太大, 不然图片一片白.
dst = cv.addWeighted(image, c, blank, 1-c, b)

对像素值进行逻辑运算
cv.bitwise_xx()

运用上述的与运算特性可以对之前章节的特定颜色进行提取

像素运算_第1张图片
像素运算_第2张图片

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)


# 图像的逻辑运算: and, or, not, xor
def logic_demo(m1, m2):

    dst1 = cv.bitwise_and(m1, m2)
    dst2 = cv.bitwise_or(m1, m2)
    dst3 = cv.bitwise_not(m1)
    dst4 = cv.bitwise_xor(m1, m2)

    cv.imshow("dst1", dst1)
    cv.imshow("dst2", dst2)
    cv.imshow("dst3", dst3)
    cv.imshow("dst4", dst4)

# 函数是将两张相同大小,相同类型的图片融合
def contrast_brightness_demo(image, c, b):
    h, w, ch = image.shape
    blank = np.zeros([h, w, ch], image.dtype)

    # (src1, alpha, src2, beta, gamma)
    # 图像混合,alpha, beta为这两张图片的权重
    # gamma, 图1与图2作和后添加的数值. 不要太大, 不然图片一片白.
    dst = cv.addWeighted(image, c, blank, 1-c, b)
    cv.imshow("contrast_bright", dst)

def others(m1, m2):
    M1 = cv.mean(m1)
    M2 = cv.mean(m2)

    print(M1)
    print(M2)

    mean1, dev1 = cv.meanStdDev(m1)
    print("均值:", mean1, "方差:", dev1)

if __name__ == "__main__":
    src1 = cv.imread("./images/01.jpg")
    src2 = cv.imread("./images/02.jpg")

    # cv.namedWindow("image", cv.WINDOW_AUTOSIZE)
    # cv.imshow("image1", src1)
    # cv.imshow("image2", src2)

    # add_demo(src1, src2)
    # subtract_demo(src1, src2)
    # multiply_demo(src1, src2)
    # divide_demo(src2, src1)
    # logic_demo(src1, src2)
    src = cv.imread("./images/CrystalLiu2.jpg")
    cv.imshow("src", src)
    contrast_brightness_demo(src, 0.7, 50)

    cv.waitKey(0)
    cv.destroyAllWindows()

add_demo

像素运算_第3张图片

subtract_demo

像素运算_第4张图片

multiply_demo

像素运算_第5张图片

divide_demo

像素运算_第6张图片
logic_demo

像素运算_第7张图片

contrast_brightness_demo

你可能感兴趣的:(opencv笔记,opencv,计算机视觉,cv,python)