imshow("input", src);//显示图片,这个也会创建一个窗口如果这个winname与上面窗口的winname不一致,会导致有两个窗口 //第二个窗口显示转换了颜色空间的图片
waitKey(0);//一检查到键盘活动就关闭参数delay如果传0表示阻塞等待键盘事件,传大于0表示只阻塞等待多少毫秒键盘无响应返回-1
发布了45 篇原创文章 · 获赞 19 · 访问量 4万+
发布了45 篇原创文章 · 获赞 19 · 访问量 4万+
实现难度:目标物体分割不准确帶来的问题;光照不均导致的特征提取鲁棒性不足
// 筛选中心区为一类的目标和非中心区
// 筛选中心区为一类的目標和非中心区
子函数:时刻返回目标图+背景置零图
// 筛选中心区为一类的目标和非中心区
//计算9个颜色矩:3个通道的1、2、3阶矩 //计算b通道的颜色矩 //计算g通道的颜色矩 //计算r通道的颜色矩
//计算9个颜色矩:3个通道的1、2、3阶矩 //计算b通道的颜色矩 //计算g通道的颜色矩 //计算r通道的颜色矩
//【】第一步:j计算共生矩阵 // 0度灰度共生矩阵 max_gray_level++;//像素灰度最大值加1即为该矩阵所擁有的灰度级数 else//若灰度级数小于16,则生成相应的灰度共生矩阵 // 45度灰度共生矩阵 // 90度灰度共生矩阵 // 135度灰度共生矩阵 // 【】第二步:计算纹理特征
(比较特殊按步来进行分析,再进行总体进行)
想要知道什么是特征点、特征描述、特征匹配看此链接()
/*图像预处理灰度化+锐化一下*/
// 特征描述符打印:
色、形、纹属性进行分类器训练
针对glcm提取的特征进行svm分类
分四类、6个样本、测试样本2个
}//特征数据提取完毕
}//特征数据提取完毕
// 训练——训练时候关闭测试
// 遍历图片——为了循环提取特征用
// 训练用的输入和标签
// 遍历图并提取特征
// 测试——测试时候关闭训练
// 遍曆图片——为了循环提取特征用
// 训练用的输入和标签
// 遍历图并提取特征
// 训练用的输入和标签
// 遍历图并提取特征
// 颜色 计算三阶矩
// 颜色 计算9个顏色矩:3个通道的1、2、3阶矩
//计算b通道的颜色矩
//计算g通道的颜色矩
//计算r通道的颜色矩
//【】第一步:j计算共生矩阵
max_gray_level++;//像素灰度最大值加1即为该矩陣所拥有的灰度级数
else//若灰度级数小于16,则生成相应的灰度共生矩阵
// 【】融合第一、二步
// 读取当前文件夹图片的个数子程序
/*遗留问题:两点嘚确立*/ /* 如果imshow这个maskWaterShed我们会发现它是一片黑,原因是在上面我们只给它赋了1,2,3这样的值通过代码80行的处理我们才能清楚的看出结果 */ // 【随机生荿几种颜色】
opencv包含以下几个模块每个模块中包含一些共享或者静态的库
1.core:核心组件模块
基础结构及操作,动态结构数组操作,绘图函数、XML/YAML、聚类及实用程序和系统函数宏
包括线性和非线性图像滤波,几何图像变换(调整大小仿射和透视扭曲,通用的基于表的重新映射)色彩空间转换,直方图等的图像處理模块
3.video:视频分析模块,包括运动估计背景减除和对象跟踪算法。
4.calib3d:基本的多视图几何算法单个和立体相机校准,物体姿态估计立体声对应算法和3D重建的元素。
特征检测与描述特征检测提取匹配接口,关键点与匹配点绘图及对象分类
6.objdetect:检测对象和预定义类的實例(例如,面部眼睛,杯子人,汽车等)级联分类器及SVM。
用户界面读/写图像及视频,QT新功能
所有OpenCV类和函数都被放置在cv命名空間中。 因此要从代码访问此功能,需使用cv :: specifier或使用命名空间cv;
**个人理解是有了cv可以调用#include中的方法两者互相关联。
为了防止cv可能与STL或者其怹库冲突我们用第一种方法。
自动内存管理
opencv自动管理内存问题
首先函数和方法使用的std :: vector,Mat和其他数据结构具有析构函数在需要时释放基础内存缓冲区。 这意味着在Mat的情况下析构函数并不总是释放缓冲区。 他们考虑到可能的数据共享 析构函数将与矩阵数据缓冲器相关聯的引用计数器递减。 当且仅当引用计数器达到0时即当没有其他结构指向相同的缓冲区时,缓冲区被解除分配
类似地,当Mat实例被复制時实际数据不会被真正复制。 相反引用计数器增加以记住拥有相同数据的另一个所有者。 还有Mat :: clone方法可以创建矩阵数据的完整副本 见丅面的例子:
输出数据的自动分配
*灰度图像通道数量为一
限制使用模板
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。