學習視頻可參見python+opencv3.3視頻教學 基礎入門[1]
今天寫的是圖像像素運算
outline
1.算術運算兩張形狀大小完全相同的圖進行加減乘除
原圖如下
黑為0,0圖二中任意的一個像素值還是圖二的值,白為255,255加圖二中任意的一個像素值騎結果超過255,進行截斷,最終結果還是255,即為白色
def add_demo(m1,m2):
dst=cv.add(m1,m2)
cv.imshow("add_demo",dst)
!(https://gitee.com/guohui7/weixinpicture/raw/master/img/image-20201004194249572.png)
黑為0,0-圖二中任意的一個像素值為負值,而範圍是0-255,因此取0,即為黑,白為255,255-圖二中任意的一個像素值得到相反的顏色
def subtract_demo(m1,m2):
dst=cv.subtract(m1,m2)
cv.imshow("subtract_demo",dst)
應用:顯示兩幅圖像的差異,檢測同一場景 兩幅圖像之間的變化;圖像分割,如分割運動的車輛,減法去掉靜止的部分,剩餘的是運動元素和噪聲。
黑為0,0*圖二中任意的一個像素值為0,為黑,linux原圖外邊框是反鋸齒的(邊緣柔化),有模糊的,並不一定都為0,因此相乘之後會出現那種像煙花的邊邊
def multiply_demo(m1, m2):
dst = cv.multiply(m1, m2)
cv.imshow("multiply_demo", dst)
應用:圖像的局部顯示,用二值模板圖像與原圖像做乘法
def divide_demo(m1, m2):
dst = cv.divide(m1, m2)
cv.imshow("divide_demo", dst)
def logic_demo(m1, m2):
dst=cv.bitwise_and(m1,m2)
cv.imshow("logic_demo", dst)
def logic_demo(m1, m2):
dst=cv.bitwise_or(m1,m2)
cv.imshow("logic_demo", dst)
def logic_demo(m1):
dst=cv.bitwise_not(m1)
cv.imshow("logic_demo", dst)
def contrast_brightness_demo(image, c, b):
h, w, ch = image.shape
#初始化一張黑圖
blank = np.zeros([h, w, ch], image.dtype)
# 圖像混合,c, 1-c為這兩張圖片的權重
dst = cv.addWeighted(image, c, blank, 1-c, b)
cv.imshow("contrast_brightness_demo", dst)
src=cv.imread("./images/lena.jpg")
#對比度1.2,亮度100
contrast_brightness_demo(src,1.2,100)結果如下:
結語以上內容僅是自我學習時記錄的筆記,歡迎大家批評指正,一起學習進步。
參考資料[1]python+opencv3.3視頻教學 基礎入門: https://www.bilibili.com/video/BV1QW411F7e7?p=1