opencv进阶学习笔记3:像素运算和图像亮度对比度调节
基礎版傳送門:
python3+opencv學習筆記匯總目錄(適合基礎入門學習)
進階版目錄:
python+opencv進階版學習筆記目錄(適合有一定基礎)
像素運算
要求兩張圖大小,以及格式(np.uint8)完全一致,否則報錯。
算術運算有加減懲除。應用它調節亮度和對比度。
邏輯運算:與或非,應用:遮罩層控制
1.像素算術運算
加法運算
cv2.add(m1, m2)
黑色為0 白色為255. 相加值超過255截斷。
減法運算
cv2.subtract(m1, m2)
除法運算
dst = cv2.divide(m1, m2)
除法得到的是很小的數值,一片黑
乘法運算
dst = cv2.multiply(m1, m2)
發現原始linux圖中的黑色并不是完全為0,是 接近0的存在。
均值,方差
均值:cv2.mean(src)
方差:m, dev = cv.meanStdDev(img) 返回均值和方差
每個通道一個顏色
2.像素邏輯運算
dst = cv2.bitwise_and(m1, m2,mask)。與或非都有mask選項
為除去mask部分的圖進行邏輯運算。
可以參考
opencv進階學習筆記2:numpy操作圖像,色彩空間,查找指定顏色范圍,通道分離與合并
文中講到mask運用。
與運算:dst = cv2.bitwise_and(m1, m2)
import cv2 as cv import numpy as npdef logic_demo(m1, m2):dst = cv.bitwise_and(m1, m2)cv.imshow("logic_demo", dst)print("--------- Hello Python ---------") src1 = cv.imread("linux logo.jpg") src2 = cv.imread("Windowslogo.jpg") src1=cv.resize(src1,(400,300)) src2=cv.resize(src2,(400,300)) cv.imshow("image1", src1) cv.imshow("image2", src2) logic_demo(src1, src2)#與 cv.waitKey(0) cv.destroyAllWindows()圖片格式是np.uint8 ,8位二進制,可以進行邏輯運算
或運算:dst = cv2.bitwise_or(m1, m2)
非運算:dst = cv2.bitwise_not(m1)
圖像亮度對比度調節
cv2.addWeighted(圖像1,系數1,圖像2,系數2,亮度調節量)
亮度調節量:為給每一張圖的像素加上亮度調節量。
dst = src1系數1 + src2系數2 + 亮度調節量;
其中c越大,越亮。
起作用的是系數1,和亮度調節量。
系數2乘以的是全0數組,無用,放在這里起傳參作用。
電氣專業的計算機萌新,寫博文不容易。如果你覺得本文對你有用,請點個贊支持下。謝謝。
總結
以上是生活随笔為你收集整理的opencv进阶学习笔记3:像素运算和图像亮度对比度调节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14年2.8经典全顺用的是什么发动机?
- 下一篇: opencv进阶学习笔记4:ROI和泛洪