OpenCV入門基礎操作(三)----利用numpy對影象進行處理
阿新 • • 發佈:2021-02-05
利用numpy對影象進行處理
前言
之前的我們使用opencv來對影象進行處理的,學習瞭如何讀取影象和修改畫素值,除了使用opencv我們也可以用numpy包,從而對影象進行處理。一、讀取影象
讀取畫素的時候,利用的是item函式,使用的常用命令就是:返回值=影象.item(位置引數),如果為灰度影象,比如
p=img.item(88,142)
print(p)
這樣就讀取到了這張圖片位於第88行,第142列的位置的值;對於BGR影象時,我們就需要另外加上對應的通道值,比如:
blue=img.item(78,85,0)
geren=img.item(78,125,1)
red=img.item(78,125,2)
print(blue)
print(green)
print(red)
二、修改畫素值
修改畫素的時候,我們就用到了itemset這個函式,它的應用語法為:
影象名.itemset(位置,新值)
對於灰度影象而言,img.itemset((88,99),255)
對於BGR影象,可以這樣設定:
img.itemset((88,99,0),255) img.itemset((88,99,1),255) img.itemset((88,99,2),255)
程式碼示例
利用numpy包修改灰度影象的值:
import cv2
import numpy as np
i=cv2.imread("D:\\Deeplearning\\lesson\\chapter2\\image\\lena256.bmp",cv2.IMREAD_UNCHANGED)
print(i.item(100,100))
i.itemset((100,100),255)
print(i.item(100,100))
結果可以看到原先的圖象值為73,現已經修改為255.
修改彩色BGR影象時:
import cv2
import numpy as np
i=cv2.imread( "D:\\Deeplearning\\lesson\\chapter2\\image\\lenacolor.png",cv2.IMREAD_UNCHANGED)
print(i.item(100,100,0))
i.itemset((100,100,0),255)
print(i.item(100,100,0))
print(i.item(100,100,1))
i.itemset((100,100,1),255)
print(i.item(100,100,1))
print(i.item(100,100,2))
i.itemset((100,100,2),255)
print(i.item(100,100,2))
執行之後結果如下:
圖中我們知道,分別顯示出來彩色影象的每個通道的原始值和修改後的畫素值。
總結
提示:
以上就是今天要講的內容,本文僅僅簡單介紹了利用numpy包對影象進行了讀取和修改,主要用到的是item和itemset函式,對灰度影象和彩色影象進行了修改,尤其要注意的是BGR影象的通道,主要有三種通道,注意在設定的時候看清楚,避免出錯。