日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV中cvAdds和cvAdd中的mask的用法探讨

發布時間:2024/4/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV中cvAdds和cvAdd中的mask的用法探讨 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OpenCV中cvAdds和cvAdd中的mask的用法探討

Fn :

包含 mask 參數的一些函數如下?[摘自opencv 2.3.1版本 C++]

  • void?add(InputArray?src1, InputArray?src2, OutputArray?dst, InputArray?mask=noArray(), int?dtype=-1)
  • subtract
  • bitwise_and, bitwise_not, bitwise_or, bitwise_xor
  • mean, menStdDev
  • minMaxLoc
  • norm, normalize
  • grabCut
  • calcHist

Quote :

mask?–?Optional operation mask, 8-bit single channel array, that specifies elements of the destination array to be changed. [From?OpenCV2.3.1 Doc]

mask 是一個8位的單通道數組,它指定了目標數組哪些元素會被修改。以 add 函數為例,請見?Code


Code :

1: /* 2: Author : Ggicci 3: Date : 2012.07.20 4: Title : How to use opencv's parameter - mask ? 5: */ 6: int main() 7: { 8: Mat m(10, 10, CV_8U); 9: //RNG類對象rng, 以統一分布(Uniform Distribution)隨機填充矩陣 m 和 n 10: cv::RNG rng; 11: rng.fill(m, RNG::UNIFORM, 0, 10); 12: cout << "m = " << endl << m << endl << endl; 13: 14: Mat n(10, 10, CV_8U); 15: rng.fill(n, RNG::UNIFORM, 8, 10); 16: cout << "n = " << endl << n << endl << endl; 17: 18: Mat dst; 19: //指定 mask 20: Mat mask(10, 10, CV_8U, Scalar(0)); 21: Mat specified(mask, Rect(2, 5, 4, 4)); 22: specified.setTo(1); 23: cout << "mask = " << endl << mask << endl << endl; 24: 25: cv::add(m, n, dst, mask); 26: cout << "dst = " << endl << dst << endl << endl; 27: 28: return 0; 29: }

Output :

1: m = 2: [6, 7, 9, 9, 7, 0, 6, 3, 6, 9; 3: 1, 8, 7, 8, 5, 3, 8, 1, 7, 3; 4: 3, 3, 5, 4, 8, 2, 6, 1, 2, 2; 5: 6, 1, 0, 7, 3, 5, 0, 6, 3, 3; 6: 7, 5, 0, 5, 3, 0, 2, 7, 1, 7; 7: 9, 8, 8, 3, 9, 5, 4, 1, 8, 3; 8: 8, 1, 8, 7, 7, 0, 3, 8, 8, 3; 9: 8, 9, 5, 1, 1, 3, 3, 3, 4, 7; 10: 2, 7, 6, 8, 2, 4, 9, 5, 6, 1; 11: 5, 0, 5, 7, 8, 4, 1, 0, 4, 8] 12: 13: n = 14: [9, 8, 9, 8, 8, 9, 9, 9, 9, 9; 15: 9, 9, 9, 9, 9, 8, 8, 9, 9, 9; 16: 8, 8, 9, 9, 8, 9, 9, 9, 8, 9; 17: 9, 9, 8, 9, 9, 8, 8, 8, 8, 8; 18: 8, 8, 9, 8, 9, 9, 8, 8, 8, 8; 19: 9, 9, 9, 9, 8, 8, 8, 9, 9, 8; 20: 9, 9, 8, 8, 8, 9, 9, 8, 8, 9; 21: 9, 8, 9, 9, 8, 9, 8, 9, 9, 8; 22: 9, 8, 9, 9, 9, 9, 8, 9, 8, 8; 23: 8, 8, 9, 9, 9, 8, 9, 8, 9, 9] 24: 25: mask = 26: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0; 27: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; 28: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; 29: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; 30: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; 31: 0, 0, 1, 1, 1, 1, 0, 0, 0, 0; 32: 0, 0, 1, 1, 1, 1, 0, 0, 0, 0; 33: 0, 0, 1, 1, 1, 1, 0, 0, 0, 0; 34: 0, 0, 1, 1, 1, 1, 0, 0, 0, 0; 35: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 36: 37: dst = 38: [205, 205, 205, 205, 205, 205, 205, 205, 205, 205; 39: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205; 40: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205; 41: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205; 42: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205; 43: 205, 205, 17, 12, 17, 13, 205, 205, 205, 205; 44: 205, 205, 16, 15, 15, 9, 205, 205, 205, 205; 45: 205, 205, 14, 10, 9, 12, 205, 205, 205, 205; 46: 205, 205, 15, 17, 11, 13, 205, 205, 205, 205; 47: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205] 48: 49: 請按任意鍵繼續. . .//mask的紅色部分指定了dst被修改的部分(同樣以紅色標出),其余部分為dst的初始化值

?

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的OpenCV中cvAdds和cvAdd中的mask的用法探讨的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。