Opencv的准备阶段小知识
来源:互联网 发布:软件开发过程管理流程 编辑:程序博客网 时间:2024/06/05 15:27
1.匈牙利命名法: 变量名=属性+类型+对象;
2.argc和argv是UNIX,Linux,MacOS中main函数的标准写法。
3.在Windows的控制台程序中,将main()函数作为程序入口点,并且很少使用argc和argv等参数;
4.printf函数标准的C语言函数,包含在 stadio.h当中,但是opencv中也包含它,只要包含了opencv.hpp就可以使用它;最后一个字母f是format“”格式“”。
5.imread(const string&filename,flag) //flag是0时载入灰度图像,flag>0时,是三通道的彩色图像,flag<0时是包含alpha通道的加载图像。彩色图像按照BGR存储
6.imshow在显示图像时,如果窗口是CV_WINDOW_AUTOSIZE创建的,就显示原始图像的大小,否则将进行缩放。缩放取决于图像的深度。
7.nameWindow原型是 void nameWindow(const string& winname,int flags=WINDOW_AUTOSIZE);默认不填是 WINDOW_AUTOSIZE 窗口自动调整适应图像
8. imwrite是将图片保存为文件的函数,原型是:bool imwrite (const string&filename,InputArray img,cont vector <int >params=vector<int>() );
第一个是需要保存的文件名,第二个是Mat型,第三个一般情况不填
9.遇到函数原型中的InputArray/OutputArray类型,可以简单把它们当成Mat型
10.alpha通道是指一个图片的透明和不透明度。其中黑表示透明,白表示不透明,灰表示半透明。
11.函数中params 其实就是一个 vector<int>型的参数,这个参数是不确定的,可以存一个变量名,一个值。push_back在vector类中作用为在vector尾部加入一个数据。
12.try....catch...
catch(...)的作用
catch(…)能够捕获多种数据类型的异常对象,所以它提供给程序员一种对异常对象更好的控制手段,使开发的软件系统有很好的可靠性。因此一个比较有经验的程序员通常会这样组织编写它的代码模块,如下:
void Func(){try{ // 这里的程序代码完成真正复杂的计算工作,这些代码在执行过程中 // 有可能抛出DataType1、DataType2和DataType3类型的异常对象。}catch(DataType1& d1){}catch(DataType2& d2){}catch(DataType3& d3){}// 注意上面try block中可能抛出的DataType1、DataType2和DataType3三// 种类型的异常对象在前面都已经有对应的catch block来处理。但为什么// 还要在最后再定义一个catch(…) block呢?这就是为了有更好的安全性和// 可靠性,避免上面的try block抛出了其它未考虑到的异常对象时导致的程// 序出现意外崩溃的严重后果,而且这在用VC开发的系统上更特别有效,因// 为catch(…)能捕获系统出现的异常,而系统异常往往令程序员头痛了,现// 在系统一般都比较复杂,而且由很多人共同开发,一不小心就会导致一个// 指针变量指向了其它非法区域,结果意外灾难不幸发生了。catch(…)为这种// 潜在的隐患提供了一种有效的补救措施。catch(…){}}
13.图像叠加函数
addWeighted这里第五个参数是double类型的gamma,一个加到权重总和上的标量值
dst=第一个参数*第二个参数+第三个参数*第四个参数+第五个参数
第六个参数要求与前两个Mat有相同的通道数和尺寸
第七个参数在两个Mat具有相同深度时,默认为-1,可以不填。
using namespace std;
using namespace cv;
int main ()
{
Mat img=imread("cui.jpg");
Mat logo=imread("logo.png");
Mat imgROI;
imgROI=img(Rect(20,20,logo.cols,logo.rows)); //定义感兴趣区域,注意后面的cols是宽度,rows是高度,别弄反了!
addWeighted(imgROI,0.5,logo,0.5,0.0,imgROI); //在这里必须设置ROI的原因是,相加的两个Mat必须相同尺寸;
imshow("a",img);
waitKey (0);
}
14.
- Opencv的准备阶段小知识
- opencv安装之前的准备知识
- apache在程序开发阶段的一些应用小知识
- OpenCV学习的那些"小"知识
- Opencv 小知识
- opencv小知识:
- opencv小知识
- opencv---小知识记录
- opencv小知识集
- 准备阶段
- 汇编语言的准备知识
- 汇编语言的准备知识
- 汇编语言的准备知识
- 一下阶段工作需要准备的技能
- 基于sklearn的例子-准备阶段
- 准备阶段:00 学习python的目标!
- 爬虫项目的准备阶段1
- 数模的matlab自学准备阶段
- Eclipse配置Git
- C#中List.Find 方法详解
- win32窗口样式
- navicat for mysql出错,cannot connect to server on 127.0.0.1
- android的volley框架
- Opencv的准备阶段小知识
- css 清除元素的浮动方法总结
- ExecutorService-10个要诀和技巧
- 错误 找不到或无法加载主类 Eclipse
- 【MySQL性能优化】Mysql基本性能分析命令详解(3)
- CodeForces 366C Dima and Salad
- Android 动态代码添加控件
- RT3070无线网卡AP模式——开发板实现路由功能并使客户端成功联网
- 在Python 中获得当前路径