考虑到篇幅以及笔记的连接性不强的原因,项目设计笔记每节添加十条~~
11、按实际需要进行排序操作(见示例代码图1),根据所需进行排序的某个数据类型的属性作为排序规则的参数,然后再将其写入sort()函数即可。另外,sort()函数的第一、二个参数需要时指针类型。
12、cv::rectangle()可实现在图上绘制矩形,其有两种构造函数,如图2所示
13、Rect数据类型的结构:从网上截下来了一张图,如图3,简洁明了:)
14、内联函数:在函数定义前家上关键字inline
在程序的编译过程中,编译器将程序中出现内联函数的调用表达式用内联函数的的函数体来进行替换,此时便不会出现程序转移的问题,但会增加程序的代码量。故内联函数是一目标代码的增加为代价来换取时间的节省。
15、向量添加元素
若声明了一个向量类型的变量A,若需向其添加元素,则不能直接用A[i]的方式进行访问,而应该用A.push_back(ELEMENT)的方式进行添加。另外可以利用A.erase()来删除向量中的某个位置的元素。A.pop_back()是删除最后一个元素,类似于栈的操作。
16、对一幅图像进行一次或多次开(闭)操作的效果是一样的。在选取结构元素时,相对更大的size,可以更好的消除连接带。
17、MSER:基于分水岭分割算法的处理,对微弱边缘也能有较好的效果
18、计算一幅图片中所有像素点的均值及方差的函数,如图4,或单独计算,如图5
19、读取一个文本文件中的最后一个数字
【在这儿就需要补充c++中文件流的相关操作了,其中a、b可以合并成一步来实现。
a、定义文件流对象 b、打开文件 c、读写文件[提取/插入运算符] d、关闭文件】
因为是需要读最后一个数字,第一次尝试是使用EOF为判断依据,即用get读取文件信息时,判断其返回值是否为EOF(-1),若是则表示已读到文件末端。但此时出现的问题便是,数字的位数是不确定的,故不能以最后一个字符为依据来评判。第二次尝试则是使用文件随机读写的方式根据某个固定字符的位置来进行文件的读取操作,直接参看代码会更直观,如图6
注:文件的随机写操作是使用seekp(位移量n,[参照位置]),其中参照位置可取:cur,beg,end
tellg()函数可用来返回文件当前读的位置,故先用seekg(0,ios::end)将其指向文末,再用tellg()获取其位置,此位置即为文件的大小。
20、向文本中换行添加信息,图7