在做像素運算的時候祭务,對圖像有一個要求屁柏,輸入圖像的大小,和類型要完全一致扑毡,這樣才能完成像素運算胃榕。
一下就是加減乘除的運算,沒啥好講的 調(diào)api就完事了
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)
接下來是對圖像取? 與 或 非 的一些操作 邏輯運算
def logic_demo(m1, m2):?
?dst = cv.bitwise_and(m1,m2)? 二進制的與運算瞄摊,全1時才為1
?dst = cv.bitwise_and(m1,m2) 二進制的或運算勋又,全0時為0,有1為1
cv.imshow("logic_demo", dst)
?image = cv.imread("C:/Users/w/Pictures/Saved Pictures/4.png")
dst = cv.bitwise_not(image) 二進制的非運算泉褐,0取反為1赐写, 1取反為0
cv.imshow("logic_demo", dst)
def other(m1, m2):? 算均值 和方差
M1,dev1 = cv.meanStdDev(m1) 返回均值和方差
M2,dev2 = cv.meanStdDev(m2) 同上
h, w = m1.shape[:2] 將m1 圖像的 高和寬? 分離出來
print("mean", M1) 打印均值
print("mean", M2)
print("dev ",dev1) 打印方差
print("dev ",dev2)
img = np.zeros([h, w], np.uint8) 創(chuàng)建一個高 寬為0 的一個矩陣
m, dev =cv.meanStdDev(img)
print(m)? 均值和方差肯定全為零? 當(dāng)圖像全為一個數(shù)值的時候,它的均值和方差肯定是全為0的膜赃,這個圖像沒有任何的意義挺邀,我們可以根據(jù)均值和方差來得到這個結(jié)論。
print(dev)
以上講解了一些關(guān)于像素運算的加減乘除和與或非的操作跳座,有編程基礎(chǔ)的應(yīng)該很容易能夠理解 ?
接下來調(diào)節(jié)一下圖像的亮度和對比度
def contrast_brightness_demo(image,c,b): c 代表了對比度 b 代表了亮度
h, w, ch = image.shape 分開
blank = np.zeros([h, w, ch], image.dtype) 創(chuàng)建一個和原來一樣的圖片 里面的值全為0
dst = cv.addWeighted(image, c, blank, 1-c, b)這個api 能夠調(diào)整亮度和對比度?
api 的原理 dst = src1*alpha + src2*beta + gamma;
cv.imshow('con_bri-demo', dst)