Python調用OpenCV的很多操作都是類似numpy的操作的,這篇內容包括加法操作、圖像混合、按位運算。
1、加法
圖像的加法可以用cv2.add()來實現,如果相加後的像素值超過255,則取255,也可以用numpy的+操作,但是+操作的話與add函數不同的地方在於numpy的加法是取模操作,也就是說如果相加之後大於255,那麼就會對256取模:
import numpy as np
import cv2
x = np.uint8([250])
y = np.uint8([10])
print(cv2.add(x,y))
print(x+y)
顯示的結果如下:
2、圖像混合
圖像混合可以通過cv2.addWeighted來實現:
dst=cv2.addWeighted(img1,0.7,img2,0.3,0)
這個函數的作用就是兩個圖像相加,0.7和0.3分別是第一個圖像和第二個圖像的權值,最後一個值是相加後的偏移量。
3、按位運算
按位操作有與(cv2.bitwise_and)、或(cv2.bitwise_or)、非(cv2.bitwise_not)、異或(cv2.bitwise_xor)
import numpy as np
import cv2
img1 = cv2.imread("D:\images\lena.jpg", flags=1)
img2 = cv2.imread("D:\images\lena.jpg", flags=1)
cv2.bitwise_not(img2, img2)
cv2.imshow('image1',img1)
cv2.imshow('image2',img2)
cv2.waitKey(0)
cv2.bitwise_or(img1, img2, img1)
cv2.imshow('image1',img1)
cv2.waitKey(0)
cv2.bitwise_and(img1, img2, img2)
cv2.imshow('image2',img2)
cv2.waitKey(0)
cv2.bitwise_xor(img1, img2, img2)
cv2.imshow('image2',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
爲誰忙,莫非命。
西風驛馬。落月書燈。
青天蜀道難,
紅葉吳江冷。
兩字功名頻看鏡,
不饒人白髮星星。
釣魚子陵,
思蓴季鷹,
笑我飄零。