OpenCV
Mr.deeplan
这个作者很懒,什么都没留下…
展开
-
fatal error: opencv2\highgui\highgui.hpp: No such file or directory
在Linux上编译opencv代码时报错fatal error: opencv2\highgui\highgui.hpp: No such file or directory但是同样的代码再Windows上能正确编译运行。而且Linux上opencv安装没有问题,版本也没有问题,相应环境变量也都设置了,highgui也存在。找了好久试了很多方法都没有解决这个问题,后来终于发现错误,是Linu...转载 2020-01-13 16:59:49 · 3376 阅读 · 0 评论 -
ORB_SLAM ROS编译问题:libopencv_core3.so.3.3.1,_ZN2cv6String10deallocateEv
文章转载自:https://blog.csdn.net/qq_43445817/article/details/100835304感谢原作者.ORBSLAM2地图保存、轨迹保存:https://blog.csdn.net/kyjl888/article/details/88416122笔者首先在~/.bashrc上设置了路径:1 sudo vim ~/.bashrc ##(gedit ...转载 2020-01-03 20:34:49 · 1670 阅读 · 0 评论 -
Opencv cuda 9.0编译记录
[ ycm的安装 ]opencv_contrib cuda9.0编译教程cuda版本: cuda 9.0g++版本: g++ 5.4.01. 下载资料并解压opencv3中, SIFT算法已经迁移到opencv_contrib模块里,此模块还包含人脸检测,dnn,物体检测,滤波器注意:新模块通常没有稳定的API,并且未经充分测试.opencv-3.3.1.zipopencv_con...原创 2019-12-02 19:15:42 · 443 阅读 · 0 评论 -
Opencv Mat矩阵中data、size、depth、elemSize、step等属性的理解
data: uchar类型的指针,指向Mat数据矩阵的首地址。可以理解为标示一个房屋的门牌号;dims: Mat矩阵的维度,若Mat是一个二维矩阵,则dims=2,三维则dims=3,大多数情况下处理的都是二维矩阵,是一 个平面上的矩阵。 可以理解为房屋是一个一层的平房,三维或更多维的则是转载 2017-10-21 21:39:25 · 311 阅读 · 0 评论 -
opencv像素基本操作及图像遍历at
矩阵元素的表达:对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32F32F 等;这些类型可以直接用 uchar 、short 、float等 C/C++语言中的基本数据类型表达。如果多通道图像,如RGB彩色图像,需要用三个通道来表示。在这种情况 下,如果依然将图像视作一个二维矩阵那么矩阵的元素不再是基本数据类型。opencv中使用转载 2017-10-21 16:49:08 · 339 阅读 · 0 评论 -
OpenCV里面Mat方法中的Scalar详解
OpenCV参考手册2.3.1中第15页,有这么一个例子:// make a 7x7 complex matrix filled with 1+3j.Mat M(7,7,CV_32FC2,Scalar(1,3));解释如下:创建一个M矩阵,7行7列,类型为CV_32F,C2表示有2个通道。Scalar(1,3)是对矩阵进行初始化赋值。第一个通道全为1,第2个通道全为3。具体见一转载 2017-10-21 16:18:37 · 955 阅读 · 0 评论 -
一些关于Canny边缘检测算法的改进
传统的Canny边缘检测算法是一种有效而又相对简单的算法,可以得到很好的结果(可以参考上一篇Canny边缘检测算法的实现)。但是Canny算法本身也有一些缺陷,可以有改进的地方。1. Canny边缘检测第一步用高斯模糊来去掉噪声,但是同时也会平滑边缘,使得边缘信息减弱,有可能使得在后面的步骤中漏掉一些需要的边缘,特别是弱边缘和孤立的边缘,可能在双阀值和联通计算中被剔除。很自然地可以预见,如转载 2017-10-21 15:59:30 · 19476 阅读 · 3 评论 -
opencv2函数学习之threshold:实现图像阈值化
在opencv2中,threshold函数可以进行阈值化操作。double threshold( const Mat& src, Mat& dst, double thresh,double maxVal, int thresholdType );参数:src:原图像。dst:结果图像。thresh:当前阈值。maxVal:最大阈值,一般为255转载 2017-10-21 15:56:11 · 231 阅读 · 0 评论 -
Canny边缘检测算法的实现
点击打开链接图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波。我们知道微分运算是求信号的变化率,具有加强高频分量的作用。在空域运算中来说,对图像的锐化就是计算微分。由于数字图像的离散信号,微分运算就变成计算差分或梯度。图像处理中有多种边缘检测(梯度)算子,常用的包括普通一阶差分,Robert算子(交叉差分),Sobel算子等等,是基于寻找梯度强度。拉普拉斯算子(二阶转载 2017-10-21 10:50:38 · 846 阅读 · 0 评论 -
霍夫线变换的原理与实现
本文从此处转载点击打开链接【1】众所周知, 一条直线在图像二维空间可由两个变量表示. 如: 在笛卡尔坐标系: 可由参数: 斜率和截距(m,b) 表示。在极坐标系: 可由参数: 极径和极角表示。 对于霍夫变换, 我们将采用第二种方式极坐标系来表示直线. 因此, 直线的表达式可为: 化简便可转载 2017-10-21 09:36:47 · 1135 阅读 · 0 评论 -
point 问题
//【4】依次在图中绘制出每条线段 for( size_t i = 0; i { float rho = lines[i][0], theta = lines[i][1]; Point pt1, pt2; double a = cos(theta), b = sin(theta); d原创 2017-10-20 22:09:36 · 246 阅读 · 0 评论 -
Canny边缘检测算法原理及其VC实现详解
图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多中不转载 2017-10-20 21:52:53 · 573 阅读 · 0 评论 -
opencv 霍夫变换检测直线中pt1、pt2点的确定
学习hough变换,对其中的pt1.x = cvRound(x0 + 1000*(-b));不是很理解。最终在别的博客中找到了答案,现拿来分享下。pt1与pt2点的计算方法 。这里已知下图中的rh0 和θ,现在只需要求图中“任意”两点, 就能用cvLine画出pt1 -> pt2的直线 。看看下图 就明白这里1000什么的是为什么了。这里是取了点(x0,转载 2017-10-20 21:49:35 · 377 阅读 · 1 评论 -
OpenCV ——双线性插值(Bilinear interpolation)
1,原理 在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值,兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中的插值效果和运算速度,运用比较广泛。 越是简单的模型越适合用来举例子,我们就举个简单的图像:3*3 的256级灰度图。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source): 2转载 2017-10-28 14:51:31 · 2979 阅读 · 0 评论