一.图像算术运算
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",dest)
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)
二.实现ps:图像调整
def contrast_brightness_demo(image,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 = logic_demo(m1,m2):
dst1 = cv.bitwise_and(m1,m2)
dst2 = cv.bitwise_or(m1,m2)
cv.imshow("logic_demo_and",dst1)
cv.imshow("logic_demo_or",dst2)
#按位非运算 按位异或
def logic_demo2(m1,m2):
dst1 = cv.bitwise_not(m1,m2)
dst2 = cv.bitwise_xor(m1,m2)
cv.imshow("logic_demo_not",dst1)
cv.imshow("logic_demo_xor",dst2)
四.图像加密
import cv2
import numpy as np
demo = cv2.imread("shenmi.jpg",0)
r,c = demo.shape
key = np.random.randint(0,256,size=(r,c),dtype = np.uint8)
cv2.imshow("shenmi",demo)
cv2.imshow("key",key)
encryption = cv2.bitwise_xor(demo,key)
decryption = cv2.bitwise_xor(encryption,key)
cv2.imshow("jiami",encryption)
cv2.imshow("jiami",decrytion)
cv2.waitKey(-1)
cv2.destroyAllWindows()
数字水印
lena = cv2.imread("lena.bmp",0)
watermark=cv2,imread("watermark.bmp",0)
w=watermark[:,:]>0
watermark[w]=1
r,c=lena.shape
t254=np.ones((r,c),dtype=np.uint8)*254
lenaH7=cv2.bitwise_and(lena,t254)
e=cv2.bitwise_or(lenaH7,watermark)
t1=np.ones((r,c),dtype=np.uint8)
wm=cv2.bitwise_and(e,t1)
print(wm)
w=wm[:,:]>0
wm[w]=255
cv2.imshow("lena",lena)
cv2.imshow("watermark",watermark*255)
cv2.imshow("e",e)
cv2.imshow("wm",wm)
cv2.waitKey()
cv2.destroyAllWindows()