我們有時會對影象重某乙個畫素進行操作,一種方法是用opencv進行操作,另一種方法是用python中的numpy庫進行操作。
首先要分享的是用opencv中的方法進行操作:
讀取獲取某一點畫素值
重新設定畫素值
pix = img[100,200,0]#獲取(100,200)處b通道的畫素值 注意img後是中括號
pix1 = img[100,200]#獲取(100,200)處的畫素值 注意img後是中括號
print(pix1,pix)
img[100:200,200:300] = 0 #將這一區域畫素設定為0
cv2.imshow('result',img)#顯示影象
cv2.waitkey(0)#保持影象
執行結果如下:可見lena中我們設定的方形區域變黑。 列印視窗中先輸出的list為bgr三個通道的畫素值,當然也可以單獨獲取某一通道的畫素值,如pix1那一行**。
這裡numpy的方法便不盡人意:實現步驟與opencv中差不多,**如下:
cv2.imshow('result',img)#顯示影象
cv2.waitkey(0)#保持影象
總結:本人感覺不盡人意的地方時numpy方法必須指定某一通道值才可以進行訪問,否則便會報錯。例如讀取彩色圖時,如果沒有指定某一通道,opencv中預設一次性返回三個通道的值,而numpy卻會報錯。此外要注意這兩種方法有的是對tuple進行操作,有的是對list進行操作,這也是一點不同之處。
OpenCV Python系列之相機校準
在本次教程中,我們將介紹 由相機引起的失真型別,如何找到相機的固有和非固有特性 如何根據這些特性使影象不失真 一些針孔相機會給影象帶來明顯的失真。兩種主要的變形是徑向變形和切向變形。徑向變形會導致直線出現彎曲。距影象中心越遠,徑向畸變越大。例如,下面顯示乙個影象,其中棋盤的兩個邊緣用紅線標記。但是,...
OpenCV Python入門教程5 閾值分割
灰度圖讀入 閾值分割 ret,th cv2.threshold img,127,255,cv2.thresh binary cv2.imshow thresh th cv2.waitkey 0 cv2.threshold 用來實現閾值分割,有4個引數 理解這5種閾值方式 應用5種不同的閾值方法 re...
OpenCV Python系列之哈里斯角檢測
我們在上次簡述了opencv的特徵基礎原理,本次我們將步入實戰部分,開始進行特徵的初階檢測。原理 在上乙個教程中,我們知道了角點是影象中向任意方向發生改變時,都引起影象強烈變動的區域。chris harris 和 mike stephens 在他們1988年的 a combined corner a...