Opencv基礎入門筆記04

2021-10-01 21:49:10 字數 1652 閱讀 1368

今天覆習影象操作,包括影象的取反,二值化,作與運算等!

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 表示原影象...