(7)OpenCV 4 學習之畫素邏輯操作

2021-09-14 06:48:40 字數 2385 閱讀 5489

二、**示例

三、結果展示

四、官方教程

最近心血來潮,想具體的去學習一下影象處理,所以報了知識星球的乙個opencv研習社,將自己每天的學習,分享一下。寫個 blog 加深一下知識。

1、與(bitwise_and)

cv_exports_w void bitwise_and(inputarray src1, inputarray src2,

outputarray dst, inputarray mask = noarray());

引數一:第乙個輸入陣列或標量。

引數二:第二個輸入陣列或乙個標量。

引數三:輸出與輸入具有相同大小和型別的陣列。

引數四:操作掩碼;8位單通道陣列,用於指定要更改的輸出陣列的元素。

功能:兩個陣列的每個元素按位進行與操作(&)。

2、或(bitwise_or)
cv_exports_w void bitwise_or(inputarray src1, inputarray src2,

outputarray dst, inputarray mask = noarray());

引數一:第乙個輸入陣列或標量。

引數二:第二個輸入陣列或乙個標量。

引數三:輸出與輸入具有相同大小和型別的陣列。

引數四:操作掩碼;8位單通道陣列,用於指定要更改的輸出陣列的元素。

功能:兩個陣列的每個元素按位進行或操作(|)。

3、非(bitwise_not)
cv_exports_w void bitwise_not(inputarray src, outputarray dst,

inputarray mask = noarray());

引數一:第乙個輸入陣列或標量。

引數二:輸出與輸入具有相同大小和型別的陣列。

引數三:操作掩碼;8位單通道陣列,用於指定要更改的輸出陣列的元素。

功能:對陣列的每一位取非。

補充說明:針對輸入影象, 影象取反操作,二值影象分析中經常用

4、異或(bitwise_xor)
cv_exports_w void bitwise_xor(inputarray src1, inputarray src2,

outputarray dst, inputarray mask = noarray());

引數一:第乙個輸入陣列或標量。

引數二:第二個輸入陣列或乙個標量。

引數三:輸出與輸入具有相同大小和型別的陣列。

引數四:操作掩碼;8位單通道陣列,用於指定要更改的輸出陣列的元素。

功能:兩個陣列的每個元素按位進行異或操作(⊕)。

int main(int argc, char* ar**)

namedwindow("input", window_autosize);

imshow("input", src);

mat dst4;

bitwise_not(src, dst4);

imshow("dst4", dst4);

waitkey(0);

return 0;

}

與操作結果:

異或操作結果:

或操作結果:

非操作結果:

傳送門:官方教程 ---- bitwise_and、bitwise_or、bitwise_xor、bitwise_not

openCv學習記錄4

必寫的兩個方法 cv.waitkey 0 不斷重新整理 及存在 cv.destroyallwindows 關閉所有窗體加法運算 def add demo m1,m2 dst cv.add m1,m2 通過add方法使兩種 畫素疊加在一起 cv.imshow add demo dst 顯示 add d...

OpenCV學習筆記4

兩張要有相同的大小和通道數,當深度不一致時,輸出影象要明確指定深度 def add demo m1,m2 dst cv.add m1,m2 cv.imshow add demo dst defsubtract demo m1,m2 dst cv.subtract m1,m2 cv.imshow su...

opencv的學習筆記4

通常更加高階的形態學變換,如開閉運算 形態學梯度 頂帽 黑帽 等等,都是可以由常用的腐蝕膨脹技術結合來達到想要的效果。3.形態學梯度 morphological gradient 膨脹圖與腐蝕圖之差,數學表示式如下 對二值影象 進行這一操作可以將團塊 blob 的邊緣突出出來。我們可以用形態學梯度來...