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的初始化值
OpenCV中cvAdds和cvAdd中的mask的用法探讨相关推荐
- 使用OpenCV和Python从图像中提取形状
Welcome to the first post in this series of blogs on extracting features from images using OpenCV an ...
- 要点初见:Python+OpenCV校正并提取表格中的各个框
最近做了个手写汉字简历识别比赛,需要先提取表格中含有指定信息的各个框,再用TensorFlow对框中的信息进行汉字.数字.英文识别.代码已开源:https://github.com/BingLiHan ...
- 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)
使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones) 1. 效果图 2. 原理 3. 源码 参考 这篇博客将介绍如何只使用基本的图 ...
- 【从零学习OpenCV 4】安装过程中问题解决方案
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门 ...
- opencv:在二维定标中的应用
[写在前面] opencv在二维定标中的应用 参考链接: http://www.cnblogs.com/chita/ OPENCV立体标定 https://wenku.baidu.com/view/e ...
- OpenCV使用dnn从图像中解析人体部位的实例(附完整代码)
OpenCV使用dnn从图像中解析人体部位的实例 OpenCV使用dnn从图像中解析人体部位的实例 OpenCV使用dnn从图像中解析人体部位的实例 #include <opencv2/dnn. ...
- OpenCV在相机或图像中检测QR码的实例(附完整代码)
OpenCV在相机或图像中检测QR码的实例 OpenCV在相机或图像中检测QR码的实例 OpenCV在相机或图像中检测QR码的实例 #include "opencv2/objdetect.h ...
- MFC使用OpenCV在文档窗口中显示图像(支持多图片格式)
MFC使用OpenCV在文档窗口中显示图像 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/72550659 在VS ...
- opencv 从原始的图像中找出ROI区域
http://blog.csdn.net/chentravelling/article/details/45331225 opencv 从原始的图像中找出ROI区域 #include <iost ...
最新文章
- 阿里无人车配送快递突破 100 万单,小蛮驴牵引的自动驾驶战略布局
- Blog_mini完整部署文档
- python安装pyopenssl
- 首次摆脱对梯度的依赖,CMU等开源Score-CAM:基于置信分数的视觉可解释性
- 当心XML文件中的非法字符
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析【转】
- RN的stylesheet的属性及方法
- 浏览器的控制台-----后期更新
- 如何保证缓存与数据库双写时的数据一致性?
- php 9 698.00,698-00-0|2-溴-N,N-二甲基苯胺|2-bromo-N,N-dimethylaniline|2-Bromo-N,N-dimethylaniline......
- day14_html和css
- 边缘计算:你应该知道的三个趋势
- ibm服务器面板显示,IBM System x服务器前面板指示灯说明(新版)
- matlab 积分 例子,[Matlab]使用arrayfun对矩阵表达式积分的例子
- 三郎前端特效学习源代码:图片主页轮播组件
- Win10家庭版如何正确关闭自动更新
- 我在CSDN发表原创文章,被别人拿去发了一篇北大核心,论文难道就是东拼西凑?
- js代码中用单个字母命名
- RISC-V E300 SOC架构介绍——4.时钟产生
- EMC经典问答85问(1-5问)