以代码为基础的opencv-python学习 像素运算

import cv2
import numpy as np

def add_demo(m1,m2):
dst = cv2.add(m1,m2)#黑色像素为0,加其他颜色得到其他颜色值,白色为255,加其他颜色还是255,因为以BGR来看,最大255
cv2.imshow("addImage",dst)

def subtract_demo(m1,m2):
dst = cv2.subtract(m1,m2)
cv2.imshow("subtractImage",dst)

def divide_demo(m1,m2):
dst = cv2.divide(m1,m2)
cv2.imshow("divideImage",dst)

def multiply_demo(m1,m2):
dst = cv2.multiply(m1, m2)
cv2.imshow("multiplyImage", dst)

def logic_demo(m1,m2):
dst = cv2.bitwise_and(m1,m2)
cv2.imshow("logicAndImage",dst)
dstOr = cv2.bitwise_or(m1, m2)
cv2.imshow("logicOrImage", dstOr)
dstNot = cv2.bitwise_not(m2)
cv2.imshow("logicNotImage", dstNot)

#c为对比度权重,b为亮度
def contrast_brightness_demo(image,c,b):
h,w, channel = image.shape
blank = np.zeros([h,w,channel],image.dtype)
dst = cv2.addWeighted(image,c,blank,1-c,b)
cv2.imshow('dst',dst)

def others_demo(m1,m2):
M1 = cv2.mean(m1)#平均值
M2 = cv2.mean(m2)
M1,std1 = cv2.meanStdDev(m1)#均值,方差
M2,std2 = cv2.meanStdDev(m2)
print(M1)
print(M2)

src1 = cv2.imread("LinuxLogo.jpg")
src2 = cv2.imread("WindowsLogo.jpg")
src = cv2.imread("woman.jpg")
#cv2.namedWindow("Logo",cv2.WINDOW_AUTOSIZE)
#print(src1.shape)
#print(src2.shape)
cv2.imshow('woman',src)
#cv2.imshow('Linux Logo',src1)
#cv2.imshow('Windows Logo',src2)
#add_demo(src1,src2)
#subtract_demo(src1,src2)
#divide_demo(src1,src2)
#multiply_demo(src1,src2)
#logic_demo(src1,src2)
contrast_brightness_demo(src,1.2,10)
cv2.waitKey(0)
cv2.destroyAllWindows()

猜你喜欢

转载自www.cnblogs.com/August2019/p/12548261.html
今日推荐