![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
火星机器人life
热爱多传感器融合slam、机器人、人工智能相关技术。立志于让机器人更智能,为人类移民火星做铺垫。让科技使生活更幸福,让科技改变世界。
展开
-
convert bitset descriptor -> cv::Mat
bitset转opencv cv::Mat 注意(1)Mat 的列为32列,类型为uchar(2)BRIEF::bitset 的长度为256(3)每8个构成一个ucharvector<BRIEF::bitset> temp_brief_descriptors;extractor(image, keypoints, temp_brief_descriptors);brief...原创 2020-03-05 13:58:54 · 637 阅读 · 1 评论 -
windows系统下多版本opencv安装及使用
本文主要介绍opencv-2.4.10和opencv-3.1.0两个版本的安装及如何切换版本。 由于原来安装过opencv-2.4.10,打算再安装opencv-3.1.0,并使用新安装的版本。为了避免混乱,主要思路是只把opencv-3.1.0作为动态链接库使用。而原来的系统环境变量不打算修改。那么问题就变为怎么在windows环境下使用vc2013加载动态链接库并使用。1.windows环境下原创 2017-04-11 17:52:52 · 8359 阅读 · 0 评论 -
使用cmake交叉编译opencv
准备: 首先交叉编译需要交叉编译工具链 然后是在目标板上运行的动态链接库1.新建工程工程名为cuseopencv,添加文件cuseopencv.cpp cuseopencv.cpp内容如下#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main( int原创 2017-04-13 10:32:28 · 3375 阅读 · 0 评论 -
opencv使用cmake链接库函数出现usr/bin/ld: cannot find -lopencv_终极解决方案
由于安装了很多版本的opencv,希望通过cmake指定链接特定版本的opencv库。 由于我安装的opencv-3.1.0不是在系统默认的目录usr/lib中 CMakeLists.txt 如下cmake_minimum_required(VERSION 2.8.3)project(rosopencv)ADD_EXECUTABLE(rosopencv rosopencv.cpp)INCL原创 2017-04-14 16:02:00 · 17813 阅读 · 5 评论 -
交叉编译Opencv2.4.9完全实录
交叉编译opencv原创 2017-05-05 19:34:20 · 3259 阅读 · 0 评论 -
OpenCV Mat基本操作总结
(1)参与点乘的两个Mat矩阵的数据类型(type)只能是 CV_32F、 CV_64FC1、 CV_32FC2、 CV_64FC2 这4种类 型中的一种。若选用其他类型,比如CV_8UC1,编译器会报错。 如下列子会报错#include <opencv2/opencv.hpp>#include <iostream>#include <vector>#include "hom原创 2017-08-16 15:53:48 · 3042 阅读 · 0 评论 -
OpenCV 数据存储FileStorage使用
本文实现使用FileStorage存储数据和读取指定标记好的数据。 其中保存的setting.yaml内容如下, %YAML:1.0 fx: 100. fy: 101. 目的是读取fx和fy的值。 (1)存储数据 在当前文件夹下存一个setting.yaml,保存的数据为fx 100,fy 101#include <opencv2/opencv.hpp>#include <iostr原创 2017-08-24 09:40:26 · 3843 阅读 · 0 评论 -
OpenCV FindContours使用
FindContours实现了论文Topological structural analysis of digitized binary images by border following使用例子#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"#原创 2019-03-07 17:31:09 · 9105 阅读 · 0 评论 -
ubuntu下安装opencv3.1.0到自定义文件夹并使用
本文介绍ubantu下安装opencv3.1.0的步骤1.下载安装包安装包名字为opencv-3.1.0.zip 2.编译环境安装sudo apt-get install build-essential3.必需包安装sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libsws原创 2017-04-10 11:17:09 · 1903 阅读 · 0 评论 -
OpenCV实现任意大小图片的合并
OpenCV实现图像合并主要有两种方法 方法一:使用Mat.push_back方法将列数相同的图像加到最后一行 方法二: 主要思路是将图像拷贝到待合并图像的感兴趣区域 (1)新建一个要合并的图像(容器) (2)在新建合并图像中设置感兴趣区域 (3)将待拷贝图像拷贝到感性趣区域中法1.使用Mat.push_back方法将列数相同的图像加到最后一行注意此方法只能将图像合并到底部 示例代原创 2016-11-09 20:21:25 · 14898 阅读 · 2 评论 -
kinect2.0 API综述
kinect 2.0开发第一步,研究kinect2.0 API。 本文主要是翻译官方文档,另外加入自己的一点理解和实验 文档网址: https://msdn.microsoft.com/en-us/library/dn782033.aspx 1.API分类 主要分为三类 1)Windows系统运行API(Windows Runtime APIs )。 2).NET API 3)原始AP转载 2015-11-19 17:28:31 · 4063 阅读 · 0 评论 -
kinect2.0开发(一) 读取深度图像
读取深度图像原创 2015-11-19 17:33:09 · 16710 阅读 · 20 评论 -
kinect2.0(二)读取彩色图像
读取彩色图像步骤1.获取kinect传感器 2.打开传感器 3.获取彩色图像信息传感器 4. 打开彩色图像帧读取器 5.获得最近的一帧 6. 将彩色图像转换为MAT格式 7.用opencv的imshow显示 8. 回收和释放内存原创 2015-11-19 22:04:54 · 7038 阅读 · 3 评论 -
OpenCV简化版Mat实现
未来理解OpenCV中的Mat结构,自己写了一个简化版本的Mat。 Mat是个结构体,通常用来保存图片信息,比较难理解的一点是图片信息通常是一个矩阵,以数组形式保存,而这个矩阵和Mat的关系是什么呢? 经过深入研究发现,Mat结构体中的data就是指向数组的指针。#include<stdio.h>#include<stdlib.h>#include<assert.h>#define uch原创 2015-11-24 17:30:09 · 1569 阅读 · 0 评论 -
BoW(Bag-of-Features)特征袋对图像进行分类的理解
特征袋的思想BoW(Bag-of-Features)[1]算法是由Csurka等在2004年提出并应用于图像处理领域的,该算法广泛应用于目标识别和图像检索。算法主要思想借鉴了文本检索的思想。在检索文本的过程中,文本由一系列的基本单元组成,这个单元通常是单词;同理,一副图像也可以看成是由一系列的基本单元组成,这些图像中的基本单元称为视觉单词(visual words)。 如图1所示 特征袋分类的思原创 2016-04-18 11:12:54 · 4104 阅读 · 0 评论 -
opencv 取Mat元素的值
获取通道channels=1,Mat元素类型为CV_32SC1的元素的值1)使用ptr指针如 mat.ptr<uchar>(i)+j) 形式 注意: (1)元素类型是什么类型就用什么类型的指针,如CV_32SC1为32位有符号1通道矩阵,用uchar*指针,CV_32FC1为32位浮点单精度1通道矩阵,使用float*指针。#include<cv.h>#include<highgui.h>原创 2016-08-30 10:50:04 · 11928 阅读 · 2 评论 -
卡尔曼滤波的本质
卡尔曼滤波的本质是信息融合[1]。1卡尔曼滤波的本质假如你想知道某一点在一条直线上的什么位置,由于测量噪声的影响(如尺子不准,测量时斜着读尺子的值),会得到不可靠的值。假设进行两次测量,第一次测量值为x1,第二次测量值为x2。那么卡尔曼滤波的目的是希望根据这两个测量值得到这个点位置的真实值(这个真实值是其实是一种最优估计,真正的真实值是理想的)。那么如何由测量的两个值得到真实值?其实很简单,加权原创 2016-09-19 21:10:57 · 2833 阅读 · 0 评论 -
openCV任意几何形状感兴趣区域(ROI)提取
图像感兴趣区域(ROI)提取主要使用掩模来进行。掩模是二值图像,感兴趣区域的掩模值设置为255,非感兴趣区域的掩模值为0 获取掩模的方法主要有两种方法一 使用opencv中Mat函数方法,调用Mat(Rect).setTo方法设置掩模 Mat Mat::operator()( const Rect&amp;amp;amp; roi ) const //调用Mat(Rect).setTo方法 mask(rect).原创 2016-11-07 21:04:03 · 68230 阅读 · 9 评论