![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
张飞飞~
吉林大学智能网联中心VCI实验室
展开
-
OpenCV学习问题记录(三)
1、高斯滤波关于高斯滤波相关介绍代码实现(调用OpenCV库)#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgproc.hpp>using namespace std;void gaussianSmoothing1(){ // load ima原创 2020-05-16 23:59:24 · 181 阅读 · 0 评论 -
OpenCV学习问题记录(二)
避撞检测——TTC计算1、Lidar碰撞检测#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include "dataStructures.h"#include "structIO.hpp"using namespace std;void computeTTCLidar(std::vector<LidarPoint> &lidarPointsPrev,原创 2020-05-16 22:25:18 · 347 阅读 · 0 评论 -
OpenCV学习问题记录(五)
1、特征点检测器与描述符这些方法中基本都包括检测器和相应的描述符两个部分,以下为HOG类描述符SIFT和binary类的描述符BRISK的代码实现与对比。不过由于版权问题,HOG类在OpenCV中不能免费使用。#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgpr原创 2020-12-18 23:29:35 · 106 阅读 · 0 评论 -
OpenCV学习问题记录(一)
一、矩阵构造 int nrows = 480, ncols = 640; cv::Mat m1_8u; m1_8u.create(nrows, ncols, CV_8UC1); // 此刻表示创建一个480x640大小的像素块,每个像素都是三通道每个通道的位数都是8位,一个字节的。上述CV_8UC1中的8表示8位、UC表示uchar类型、1表示一个通道。 m1_8u.setTo(cv::Scalar(100)); 1.create函数函数形式: inli原创 2020-05-15 14:04:29 · 211 阅读 · 0 评论 -
激光雷达与相机融合(六)-------目标检测与跟踪ros实时版
在本部分中,将之前的优达学城的整套目标检测与跟踪算法改写为ros实时处理,但改写完成后利用我现有的数据包实时检测跟踪,并计算TTC,发现效果不尽人意啊。。。算法的鲁棒性整体较差,环境稍微复杂一点计算的碰撞时间就有问题,甚至为负值。另外在实际运行时,还会时不时出现core dumped内存泄漏的问题,不知道是哪里写的有问题,有同学发现错误欢迎留言交流,万分感谢。大概讲解一下整套算法结构。1.整体框架这一部分的代码被我改写为一个ros package的形式,包名为ros_detection_trackin原创 2020-12-03 20:39:30 · 6374 阅读 · 16 评论 -
激光雷达与相机融合(五)-------ros实时版点云投影到图像平面
基于第一部分在单帧中将点云投影到图像的基础上,现将上述代码改写为ros实时处理的版本。以后还可以在此基础上进行一步一步的扩展。将原先的离线代码改写为ros在线版本,需要将原本的代码写成package的形式,并配置好相应的依赖包、环境等,处理好数据接口。1.程序包结构本部分对数据处理较为简单,整个包仅包括两个c++文件,project.cpp和project.h文件,另外还有一个配置文件initial_params.txt,存放在cfg文件夹下。配置文件的内容如下,可根据需求修改:/kitti/came原创 2020-12-02 21:50:27 · 10953 阅读 · 29 评论 -
将ros cv_bridge关联到自己安装的Opencv版本
有时候需要同时使用较高版本的openCV,但一般默认安装的ros系统的cv_bridge包关联的Opencv版本都较低,这时候就需要将cv_bridge关联到自己安装的高版本OpenCV。成功方法为第三条,前两条为遇到的问题记录。注意:切勿随意尝试卸载cv_bridge包1.首先,我尝试了网上已有的一些通过修改cv_bridge的配置文件的方法,$ cd /opt/ros/kinetic/share/cv_bridge/cmake/$ sudo gedit cv_bridgeConfig.cmak原创 2020-11-27 14:35:56 · 3878 阅读 · 6 评论 -
激光雷达与相机融合(三)-----基于图像检测框对点云聚类
通过YOLO检测得到目标的检测框后,这些区域就可以作为ROI将包含在各roi内的点云分组聚类出来,从而通过点云得到目标的准确位置。代码解析1.boundingbox数据结构struct BoundingBox { // bounding box around a classified object (contains both 2D and 3D data) int boxID; // unique identifier for this bounding box int track原创 2020-11-14 11:03:37 · 3730 阅读 · 4 评论 -
YOLO权重文件、openCV3.4.12 4.1.0网盘下载
openCV:链接:https://pan.baidu.com/s/1PSP2YUwhhWqtLMQSLOLpCQ提取码:8u7rYOLO权重文件:链接:https://pan.baidu.com/s/1XWj1dDkDYG3iUWpTP1BbEw提取码:xkwe原创 2020-11-13 20:50:46 · 895 阅读 · 0 评论 -
激光雷达与相机融合(二)-----基于openCV的YOLO目标检测
代码解析1.加载模型// load image from file cv::Mat img = cv::imread("./images/img1.png"); // load class names from file string yoloBasePath = "./dat/yolo/"; string yoloClassesFile = yoloBasePath + "coco.names"; string yoloModelConfiguration =原创 2020-11-13 20:33:33 · 4748 阅读 · 0 评论 -
激光雷达与相机融合(一)
一.激光雷达点云俯视图提取文末有相应的代码数据包免费下载链接。将激光雷达点云投影到俯视图平面上,同时将距离的远近利用颜色表示出来。这里的滤除地面只是简单的利用高度值将地面去除。会存在效果不好的情况。代码即相应注释。#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <opencv2/原创 2020-11-12 11:25:45 · 14527 阅读 · 14 评论 -
OpenCV学习问题记录(五)
1、特征点描述(descriptor)在特征点检测之后,需要描述特征点位置、特征等信息,以便于后续匹配等工作的进行。以下提供brisk和sift两种算法的特征点描述算法,OpenCV将算法都封装了,调用起来比较简单;注:sift算法可能因为版权问题不能使用#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#i原创 2020-05-28 15:55:03 · 198 阅读 · 0 评论 -
OpenCV学习问题记录(四)
1、Harris角点检测#include <iostream>#include <numeric>#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgproc.hpp>#include <opencv2/features2d.hpp>using namespace std;void cornernessHarris原创 2020-05-18 16:18:02 · 216 阅读 · 0 评论