目錄:
(一)數值運算(加減乘除)
(二)邏輯運算(與或非異或)
正文:
(一)數值運算(加減乘除)
opencv自帶圖片色素的處理函數------相加:add() 相減:subtract() 相乘:multiply() 相除:divide()
原理就是:通過獲取兩張(一次只能是兩張)個圖片的同一個位置的色素值來實現運算。運算的要求:兩張圖片的shape要一樣。
1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 #數值運算:加減乘除 6 def shu_image(src11, src22): 7 src = cv.add(src11, src22)#加 8 cv.imshow("相加", src) 9 src = cv.subtract(src11, src22)#減 10 cv.imshow("相減", src) 11 src = cv.multiply(src11, src22)#乘 12 cv.imshow("相乘", src) 13 src = cv.divide(src11, src22)#除 14 cv.imshow("相除", src) 15 16 17 18 19 src1 = cv.imread("01.jpg") 20 src2 = cv.imread("02.jpg") 21 cv.imshow("原來1", src1) 22 cv.imshow("原來2", src2) 23 shu_image(src1, src2) 24 cv.waitKey(0) 25 cv.destroyAllWindows()
(二)邏輯運算(與或非異或)
opencv自帶圖片色素的處理函數------與:bitwise_add() 或:bitwise_or() 非:bitwise_not() 異或:bitwise_xor()
1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 #邏輯運算:與或非的操作 6 def luo_image(src11, src22): 7 src = cv.bitwise_and(src11, src22)#與 兩張圖片同一位置的色素兩個值均不為零的才會有輸出 8 cv.imshow("與", src) 9 src = cv.bitwise_or(src11, src22)#或 兩張圖片同一位置的色素兩個值不全為零的才會有輸出 10 cv.imshow("或", src) 11 src = cv.bitwise_not(src11)#非 對一張圖片操作 取反 12 cv.imshow("非", src) 13 src = cv.bitwise_xor(src11, src22)#異或 兩張圖片同一位置的色素兩個值有一個為零,另一個不為零才會輸出 14 cv.imshow("異或", src) 15 16 src1 = cv.imread("01.jpg") 17 src2 = cv.imread("02.jpg") 18 cv.imshow("原來1", src1) 19 cv.imshow("原來2", src2) 20 luo_image(src1, src2) 21 cv.waitKey(0) 22 cv.destroyAllWindows()