
OpenCv
JIN_嫣熙
Life is sad at times, but it is up to you to make your own life happy.
展开
-
基于OpenCV的findContours查找图像连通域,并进行排序
#include <opencv2/legacy/legacy.hpp> #include <opencv2/opencv.hpp> #include <vector>using namespace std; using namespace cv; //对每条连通域上的各点根据y从小到大进行排序void SortContourPoi...原创 2018-06-21 09:07:19 · 7892 阅读 · 1 评论 -
【机器学习】HOG detectMultiScale 参数分析
前段时间学习了HOG描述子及其与SVM结合在行人检测方面的应用。当我们用训练好的模型去检测测试图像时,我们会用到detectMultiScale() 这个函数来对图像进行多尺度检测。这是opencv3.1里的参数解释可以看到一共有8个参数。1.img(必需)这个不用多解释,显然是要输入的图像。图像可以是彩色也可以是灰度的。2.foundLocations存取检测到的...转载 2018-11-13 11:23:01 · 1421 阅读 · 0 评论 -
hog训练流程及源码分析
一、网上一些参考资料 在博客目标检测学习_1(用opencv自带hog实现行人检测) 中已经使用了opencv自带的函数detectMultiScale()实现了对行人的检测,当然了,该算法采用的是hog算法,那么hog算法是怎样实现的呢?这一节就来简单分析一下opencv中自带 hog源码。 网上也有不少网友对opencv中的hog源码进行了...转载 2018-11-12 16:12:31 · 1147 阅读 · 1 评论 -
【opencv+机器学习】error C3083: 'ml': the symbol to the left of a '::' must be a type问题原因
基于VS和opencv,进行机器学习的人脸识别算法时,碰到如下问题:问题原因:opencv版本是2.3.1,较低;改成opencv3.0以上版本,问题解决。原创 2018-11-12 16:47:47 · 752 阅读 · 0 评论 -
OpenCV中6种访问Mat元素的方法
Mat中不管是以at访问还是ptr访问,都是行优先 ,先Y轴后X轴(即先行后列)1、使用at访问/**OpenCV2中Mat的at操作访问矩阵元素**/#include <highgui.h>using namespace std ;using namespace cv ;int main(){ Mat image = imread("forest.j...转载 2018-11-21 11:39:40 · 34117 阅读 · 4 评论 -
各版本opencv官网下载路径
不同版本的opencv下载路径如下:https://www.opencv.org/releases.html opencv3.3.0的GitHub下载地址:https://github.com/opencv/opencv/releases/tag/3.3.0原创 2018-11-21 15:48:28 · 13480 阅读 · 0 评论 -
VS2013+opencv2.4.9配置步骤详解
1、 下载opencv2.4.9,然后解压到一个位置设置opencv SDK解压目录,点击Extract后解压 我是习惯于解压到这个位置的。解压过程如上图。2、 文件目录介绍解压后会在目录下生成opencv的文件夹 在opencv文件夹下有build和sources两个文件夹,build是SDK 包,sources是源码包(里面也...转载 2018-11-21 17:26:43 · 2884 阅读 · 0 评论 -
【OpenCV】使用projectPoints实现透视图到俯视图的变化效果
使用projectPoints函数创建透视图到俯视图的坐标映射表后,详见:OpenCV的projectPoints函数用法https://blog.youkuaiyun.com/lyq_12/article/details/82800790调用如下函数,实现透视图到俯视图的转换过程。//实现透视图到俯视图的转换过程void convertFunc( Mat &srcImg, Mat &am...原创 2018-12-04 15:14:56 · 10466 阅读 · 5 评论 -
一维行滤波提取俯视图下的车道线特征
①、图像分辨率:864×480;②、行滤波模板系数选取:float arryFilter[]={-0.125, -0.125, -0.125, -0.125, 0.25, 0.25, 0.25, 0.25, -0.125, -0.125, -0.125, -0.125};③、行滤波结果处理:if (sum < 0.1){sum = 0;}int int_sum = (...原创 2018-12-04 16:03:55 · 776 阅读 · 0 评论 -
Python初学者之ModuleNotFoundError:No module named 'cv2'简单解决办法
#Python中加载opencv库import cv2Python中加载opencv库时,出现如下错误:原因:python没有配置opencv库。解决办法如下:在Anaconda Prompt中输入conda install opencv,即可完成Python下的opencv配置。 ...原创 2018-12-04 09:38:51 · 54591 阅读 · 14 评论 -
【机器学习】LBP特征融合最大灰度差、平均灰度、平均梯度改善SVM检测效果
把正负样本12×30内的averageGray、maxPixelDiff,添加到LBPFeature后;再把梯度Mat(size(12,30))展开成一行添加到LBPFeature后。组成新的sampleFeatureMat,进行训练。//计算输入图片的最大灰度差、平均灰度、平均梯度int calAverageGary(const Mat &inImg, int &maxG...原创 2019-01-16 14:02:54 · 1237 阅读 · 7 评论 -
【机器学习】改善LBP特征提高SVM的可分性的经验总结(一)
1、等价模式LBP的最初效果正样本2343,负样本5883,直接计算等价模式LBP特征图,再使用SVM训练一个分类器。CvTermCriteria criteria = cvTermCriteria(CV_TERMCRIT_ITER, 1000, FLT_EPSILON);CvSVMParams param(CvSVM::C_SVC, CvSVM::LINEAR, 0, 0.5, 0...原创 2019-01-16 14:18:16 · 773 阅读 · 0 评论 -
【机器学习】改善LBP特征提高SVM的可分性的经验总结(二)
1、直方图均衡后,效果变差equalizeHist(testImg, testImg); //直方图均衡imshow("直方图均衡后", testImg);结论:由于直方图均衡会明显改变原来的明暗分布,反而降低可分性,检测效果显著变差。效果如下: 2、把SVM.predict输出为1的框,求平均灰度,小于设定阈值的不保留//设计12×30的滑窗遍历300×720的...原创 2019-01-16 14:50:50 · 593 阅读 · 2 评论 -
【Python】监控视频中运动目标检测的代码实现及效果展示
0、介绍基于python,使用opencv库函数,实现监控视频中的运动目标检测,Mark一下!干扰性和灵敏度的权衡,可通过调节代码中的参数(高斯模糊核、面积阈值、帧差间隔等)进行设置。 1、代码以下代码亲测可直接运行。 import cv2vc = cv2.VideoCapture("C:\\Users\\jason\\Desktop\\video.MP4") # ...原创 2019-02-15 17:51:44 · 16792 阅读 · 36 评论 -
【机器学习】HOG+SVM进行车辆检测的流程及源码
在进行机器学习检测车道线时,参考了这篇博文,基于LBP+SVM实现了车道线检测的初步效果。觉得讲解很到位,代码也容易理解和修改,故在此分享,供更多人学习。HOG SVM 车辆检测 近期需要对卡口车辆的车脸进行检测,首先选用一个常规的检测方法即是hog特征与SVM,Hog特征是由dalal在2005年提出的用于道路中行人检测的方法,并且取的了不错的识别效果。在人脸检测方面目前主流的方法,先...转载 2018-10-30 10:44:20 · 10044 阅读 · 78 评论 -
【机器学习】最简单易懂的行人检测功能实现
加载训练好的行人分类器,实现行人检测功能。代码中用到的训练好的行人分类器"pedestrianDetect.xml"下载路径:https://download.youkuaiyun.com/download/lyq_12/10742144一、效果如下:1、输入原图2、输出结果二、代码实现如下:#include <iostream>#include <fst...原创 2018-10-24 16:59:42 · 3439 阅读 · 0 评论 -
把txt中的数据读出并保存到数组中
以下代码演示如何把txt中数字,读出并保存到数组中。原创 2018-06-16 10:21:29 · 4534 阅读 · 0 评论 -
【机器学习】LBP+SVM实现特征检测
初步学习机器学习,参考HOG SVM 车辆检测(https://www.cnblogs.com/louyihang-loves-baiyan/p/4658478.html)、LBP特征原理(https://blog.youkuaiyun.com/q1007729991/article/details/52995734)及LBP特征的实现及LBP+SVM分类 (https://blog.youkuaiyun.com/qia...原创 2018-06-16 11:17:17 · 5019 阅读 · 1 评论 -
【OpenCV】8邻域种子填充法剔除短连通域的高效算法
//本文档参考种子填充算法描述及C++代码实现(https://www.bbsmax.com/A/amd0AVWzge/)讲解的原理,实现快速种子填充算法,运行效果高。//具体功能如下:依次扫描每个像素,检测8领域,寻找连通域,删掉面积小于阈值的。#include <opencv2/opencv.hpp>#include <cv.h>using namesp...原创 2018-06-19 19:53:11 · 3857 阅读 · 15 评论 -
【机器学习】对挑选后的训练样本进行连续重命名
#include <opencv2/opencv.hpp>#include <windows.h>#include <stdio.h>#include <string>#include <iostream>using namespace std;using namespace cv;int main(){ char ...原创 2018-07-10 20:22:35 · 256 阅读 · 1 评论 -
【C/C++】运算结果出现1.#Q0问题分析
打印代码结果时发现出现了1.#Q0,就在网上搜索,发现相关的中文资料介绍很少,在stackoverflow上找到了个提问(https://stackoverflow.com/questions/5939573/what-float-value-makes-sprintf-s-produce-1-qo),虽然不完全相同,但还是按照介绍逐步分析,排查其中的原因。char dispParams[100]...原创 2018-07-04 19:44:10 · 3310 阅读 · 0 评论 -
【OpenCV】函数imread的使用之通道数变化
Mat srcImg = imread( "srcImg.bmp"); //读入源图片Mat dstImg (srcImg.rows, srcImg.cols, CV_8UC1, Scalar(0));if(srcImg.at<uchar>(i,j) > 0){ dstImg.at<uchar>(i,j) = 255;}imshow("dstImg ...原创 2018-07-04 20:15:29 · 4651 阅读 · 0 评论 -
【OpenCv】Cannot parallelize deblocking type 1, decoding such frames in sequential order
使用OpenCV碰到如下问题:以下资料有助于理解该问题的原因:https://stackoverflow.com/questions/11307353/opencv-ffmpeg-image-capture-problemshttps://stackoverflow.com/questions/2017843/fetch-frame-count-with-ffmpeghttps...原创 2018-07-26 14:57:57 · 418 阅读 · 0 评论 -
OpenCV的projectPoints函数用法
函数cvProjectPoints2通过给定的内参数和外参数计算三维点投影到二维图像平面上的坐标。 #include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/highgui/highgui.hp...转载 2018-09-21 14:29:14 · 47669 阅读 · 22 评论 -
【机器学习】批量更新多个文件夹中图片的命名
#include <opencv2/opencv.hpp>#include <windows.h>#include <stdio.h>#include <string>#include <iostream>#include <ctime>#include <windows.h>#include &a原创 2018-09-30 15:56:09 · 895 阅读 · 0 评论 -
【opencv】经典的细化提取骨架理论及源代码
做项目时碰到特征的骨架提取,找了挺多相关资料,发现这篇博客讲的最完整,而且通俗易懂,完美解决碰到的问题,特转载如下,供更多的人学习。转自:https://www.cnblogs.com/mikewolf2002/p/3327183.html本章我们学习一下Hilditch算法的基本原理,从网上找资料的时候,竟然发现两个有很大差别的算法描述,而且都叫Hilditch算法。不知道那一个才是正宗的,...转载 2018-09-30 16:06:16 · 6333 阅读 · 3 评论 -
【OpenCv】 如何把图片的矩形、多边形区域内容置零
#include <iostream>#include <opencv2/opencv.hpp>#include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"using namespace std;using namespace cv;int main(){ Mat src...原创 2018-10-19 18:33:09 · 6856 阅读 · 0 评论 -
【机器学习】最容易实现的基于OpenCV的人脸检测代码、检测器及检测效果
基于opencv自带的人脸检测模型,实现简单的人脸检测功能,可作为机器学习初学者练手使用。简单易学,具体的方法及代码如下。1、运行结果输入原图输出结果2、工程需要加载的opencv库如下:3、用到的人脸检测器4、具体实现代码#include <opencv.hpp>#include <opencv2/core/core.hpp>...原创 2018-10-24 14:18:53 · 726 阅读 · 4 评论 -
【机器学习】基于opencv实现目标检测,error LNK2001: unresolved external symbol "public: virtual bool CvSVM::train...
1、链接错误如下:2、错误原因opencv的工程属性中没有添加机器学习库。3、解决办法添加依赖库:opencv_ml231.lib,如下截图:原创 2018-10-24 16:38:18 · 395 阅读 · 0 评论 -
【OpenCV】计算围棋相同颜色棋子的块数和坐标(使用深/广度搜索实现4邻域查找)
1、问题描述:给定一个n*n的围棋盘,交叉点上分布着黑,白子或空白(分别用字符b,w和 n表示),相同颜色的棋子在同行或同列相连属于同一块棋,请遍历整个围棋盘,计算黑白棋各有几块。输入:第一行只有一个整数n(0<n<20),表示棋盘的大小。接下来n行中,包含n个字符,分别用字符b,w和 n表示黑,白子或空白。输出:两个整数,分别表示黑,白棋各有几块。 打印出属于同一区域的棋...原创 2019-02-22 14:36:33 · 2281 阅读 · 0 评论