今天覆習影象操作,包括影象的取反,二值化,作與運算等!
1.簡述
我們知道灰度圖由0~255表示,0為黑,255為白,則從位操作的角度出發,純黑色為0,不是純黑色為1,所以在一些純白色,或者純黑色背景裡,先轉為灰度圖,利用閾值將非背景色的內容(灰度值不是0和255)摳出來作為模板,再與原圖做位操作,進行摳圖。
(1)cv2.bitwise_not(檔案),將裡畫素值按位反向。
(2)cv2.bitwise_and (目標檔案,原始檔,mask),將裡的畫素值按位與
(3)cv2.add(目標檔案,原始檔),將裡的畫素值按位加
(4)cv2.bitwise_xor (目標檔案,原始檔,mask),將裡的畫素值按位異或
舉出乙個函式的定義
cv_exports_w void bitwise_and(inputarray src1, inputarray src2, outputarray dst, inputarray mask = noarray());
引數一:第乙個輸入陣列或標量。(輸入1)
引數二:第二個輸入陣列或乙個標量。(輸入2)
引數三:輸出與輸入具有相同大小和型別的陣列。(輸出)
引數四:操作掩碼;8位單通道陣列,用於指定要更改的輸出陣列的元素。
注意!!!上面的函式要求的兩張深度,畫素行列必須一致才能進行相加相減,而取反運算只要求輸入一張,所以沒有上面的要求。
2.兩種方法實現以上操作:
first:呼叫api.
int main()
//2.二值化
second:c++不用api,對畫素進行操作
int main()
//2.二值化
mat dst1_image_not, dst2_image_not;
mat dst1,dst2;
cout
dst1.at(row1, col1) = 255 - v1;//反差處理
以上!
Opencv基礎入門筆記02
我們都知道,是由乙個個畫素點組成的,那麼,我理解為乙個巨大的矩陣,而矩陣掩模,就是,自己定義了乙個特定的矩陣 kernel 或者叫 mask 即掩模,然後,進行對矩陣的叉乘,是卷積濾波的一種體現,然後使呈現自己想要的樣子。實際上,掩膜mask是一種影象濾鏡的模板,實用掩膜經常處理的是遙感影象。當提取...
Opencv基礎入門筆記03
mat物件我們在學習影象處理的過程一直在接觸,那麼它到底是個什麼東西呢?當opencv 1.0發布時候沒有mat物件,是個c語言風格的資料結構iplimage來表示記憶體中影象物件,但是opencv開發者在做複雜影象處理演算法分析與計算時候,建立了很多iplimage這樣的資料結構,偶爾最後可能忘記...
Opencv基礎入門筆記06
1.影象對比度和亮度 首先,我們先說影象的變換,可以分成以下兩類 1 畫素變換 在畫素變換中,僅僅根據輸入的畫素值 有時可能加上某些全域性資訊或者引數 來計算相應的輸出畫素值。該類變換的常見方法有亮度和對比度調整 顏色校正和顏色變換等等。該類變換可以用下面的通用變換公式來表示。f x,y 表示原影象...