10 2019 档案
摘要:DNN模块介绍: Tiny-dnn模块 支持深度学习框架 - Caffe - TensorFlow - Torch/PyTorch DNN运用 图像分类 对象检测 实时对象检测 图像分割 预测 视频对象跟踪
阅读全文
摘要:基于颜色跟踪 inRange过滤 形态学操作提取 轮廓查找 外接矩形获取 位置标定
阅读全文
摘要:背景消除
阅读全文
摘要:证件照背景替换 K-Means 背景融合 – 高斯模糊 遮罩层生成 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; Mat mat_to_samples(Mat &image); int main(int argc, char** argv) { Mat src =
阅读全文
摘要:分水岭分割方法原理 (3种) - 基于浸泡理论的分水岭分割方法 (距离) - 基于连通图的方法 - 基于距离变换的方法 图像形态学操作: - 腐蚀与膨胀 - 开闭操作 分水岭算法运用 - 分割粘连对象,实现形态学操作与对象计数 - 图像分割 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using nam
阅读全文
摘要:GMM方法概述:基于高斯混合模型期望最大化。 高斯混合模型 (GMM) 高斯分布与概率密度分布 - PDF 初始化 初始化EM模型: Ptr em_model = EM::create(); em_model->setClustersNumber(numCluster); em_model->setCovarianceMatrixTyp...
阅读全文
摘要:#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat src = imread("D:/vcprojects/images/toux.jpg"); if (src.empty()) { print
阅读全文
摘要:KMeans方法概述 1. 无监督学习方法 2. 分类问题,输入分类数目,初始化中心位置 3. 硬分类方法,以距离度量 4. 迭代分类为聚类 //---------- //迭代算法的终止准则 //---------- TermCriteria( int type, //type=TermCriteria::...
阅读全文
摘要:opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。 这二者主要的区别是 opencv_traincascade 支持 Haar 和 LBP 两种特征,现在已经发展到可以支持hog特征,并易于增加其他的特征。 与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。 LBP和Haar特征用于检测的准确率,是依...
阅读全文
摘要:opencv_createsamples.exe 用来生成正样本vec的,用来准备训练用的正样本数据和测试数据。他的输出为以 *.vec 为扩展名的文件,该文件以二进制方式存储图像。 Usage: opencv_createsamples.exe [-info ] //就是跟存放正样本图片目录位置相同的描述文件的路径,可用txt,dat等格式保存,每一行的内容为:xxx.jpg ...
阅读全文
摘要:问题描述 照片是来自太空望远镜的星云图像,科学家想知道它的面 积与周长。 解决思路 方法一: 通过二值分割+图像形态学+轮廓提取 #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main(int argc, char**
阅读全文
摘要:问题描述 拍摄或者扫描图像不是规则的矩形,会对后期处理产生不 好影响,需要通过透视变换校正得到正确形状。 解决思路 通过二值分割 + 形态学方法 + Hough直线 +透视变换 #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; in
阅读全文
摘要:问题描述 真实案例,农业领域经常需要计算对象个数 或者在其它领域拍照自动计数,可以提供效率,减低成本 解决思路 通过二值分割+形态学处理+距离变换+连通区域计算 #include #include #include using namespace cv; using namespace std; int main(int argc, char...
阅读全文
摘要:问题描述 真实案例,对图像中对象进行提取,获取这样对象,去掉其它干扰和非目标对象。 解决思路 二值分割 + 形态学处理 +横纵比计算 #include #include #include #define IMAGE_IMAGE "D:/case4.png" using namespace cv; using namespace std; Mat s...
阅读全文
摘要:问题描述 寻找英语试卷填空题的下划线,这个对后期的切图与自动 识别都比较重要。 解决思路 方法: 通过图像形态学操作来寻找直线,霍夫获取位置信息与显示。 #include #include #include using namespace cv; using namespace std; #define IMAGE_PATH "D:/case3....
阅读全文
摘要:问题描述 真实案例,扫描仪扫描到的法律文件,需要切边,去掉边 缘空白,这样看上去才真实。 #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; #define IMAGE_PATH "D:/case2.png" Mat src, gra
阅读全文
摘要:Brisk(Binary Robust Invariant Scalable Keypoints)特征介绍 构建尺度空间 特征点检测 FAST9-16寻找特征点 特征点定位 关键点描述子
阅读全文
摘要:AKAZE局部匹配 AKAZE局部匹配介绍 AOS 构造尺度空间 Hessian矩阵特征点检测 方向指定基于一阶微分图像 描述子生成 与SIFT、SUFR比较 更加稳定 非线性尺度空间 AKAZE速度更加快 比较新的算法,只有OpenCV新版本才可以用 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; usi
阅读全文
摘要:利用积分图像,可以计算在某象素的上-右方的或者旋转的矩形区域中进行求和、求均值以及标准方差的计算,并且保证运算的复杂度为O(1)。 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main(int argc, char** argv) { Mat src = imread("D:/vcproject
阅读全文
摘要:HOG特征描述子提取 - 灰度图像转换 - 梯度计算 - 分网格的梯度方向直方图 - 块描述子 - 块描述子归一化 - 特征数据与检测窗口 - 匹配方法 灰度图像转换 - cvtColor - gray = R*0.3 + 0.59*G + 0.11*B 梯度计算 分网格的梯度方向直方图 分割为8*8=64像素的Cell网格 对每个Cell求取方向直方图 (Orientation Hist),分为
阅读全文
摘要:SIFT特征检测介绍 SIFT(Scale-Invariant Feature Transform)特征检测关键特性: -建立尺度空间,寻找极值 -关键点定位(寻找关键点准确位置与删除弱边缘) -关键点方向指定 -关键点描述子 关键点定位 我们在像素级别获得了极值点的位置,但是更准确的 值应该在亚像素位置,如何得到 – 这个过程称为关键 点(准确/精准)定位 删除弱边缘- 通过Hassian 矩阵
阅读全文
摘要:SURF特征基本介绍 SURF(Speeded Up Robust Features)特征关键特性: -特征检测 -尺度空间 -选择不变性 -特征向量 工作原理 1. 选择图像中POI(Points of Interest) Hessian Matrix 2. 在不同的尺度空间发现关键点,非最大信号压制 3. 发现特征点方法、旋转不变性要求 4. 生成特征向量 SURF...
阅读全文
摘要:提高检测精准度理论与现实总是不一致的,实际情况下几乎所有的角点不会是一个真正的准确像素点。(100,5)实际上(100.234,5.789) - 跟踪 - 三维重建 - 相机校正 亚像素定位 - 插值方法 - 基于图像矩计算 - 曲线拟合方法 (高斯曲面、多项式、椭圆曲面) #include #include using namespace cv; us...
阅读全文
摘要:#include #include #include using namespace cv; using namespace std; const char* harris_win = "Custom Harris Corners Detector"; const char* shitomasi_win = "Custom Shi-Tomasi Corners Detector"...
阅读全文