![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
文章平均质量分 64
kobebrian7
这个作者很懒,什么都没留下…
展开
-
OpenCV——绘制填充轮廓drawContours
我们知道如果要求取轮廓可以使用findContours函数,该函数会返回为vector >的轮廓向量。而在以前想对轮廓进行绘制我通常会使用遍历这个vector然后依次将点绘制到img上其实OpenCV里面已经有drawContours这个函数可以实现这个效果具体来说,当我想将这个轮廓进行填充的时候我会有下面2步骤:a)依次遍历轮廓点,将点绘制到img上转载 2015-03-15 14:55:08 · 2925 阅读 · 0 评论 -
Harris角点检测
角点:最直观的印象就是在水平、竖直两个方向上变化均较大的点,即Ix、Iy都较大 边缘:仅在水平、或者仅在竖直方向有较大的变化量,即Ix和Iy只有其一较大 平坦地区:在水平、竖直方向的变化量均较小,即Ix、Iy都较小2 strong eigenvalues======interest point1 strong eigenvalues======contour/edg转载 2015-03-07 09:52:03 · 367 阅读 · 0 评论 -
opencv-图像细化
在我们进行图像处理的时候,有可能需要对图像进行细化,提取出图像的骨架信息,进行更加有效的分析。 图像细化(Image Thinning),一般指二值图像的骨架化(Image Skeletonization) 的一种操作运算。 所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。骨架,可以理解为图象的中轴。 好转载 2015-03-07 09:55:28 · 1040 阅读 · 0 评论 -
OpenCV学习——cvApproxPoly的学习
这是一个轮廓的多边形轮廓逼近函数,这个函数用指定精度逼近一个或多个 曲线,并返回逼近结果。一开始觉得这个函数没什么必要,因为如果只是要简单的提取和显示图像轮廓的话只要cvFindContours函数就够了,那么为什么还要这个函数呢?后来百度了下,在opencv论坛上找到了答案。首先,轮廓的多边形逼近指的是:使用多边形来近似表示一个轮廓。其次,多边形逼近的目的是为了减少轮廓的顶点数目。但多边转载 2015-03-07 14:24:17 · 1920 阅读 · 0 评论 -
opencv2.4.3中surf代码分析----特征点提取
opencv安装目录/doc 下有个文件:opencv_tutorials.pdf 这个文件给我们提供很多学习代码。。有时间可以好好看下。。很有用的。。。我还没认真看。。。现在进入正题 surf特征提取方法:[cpp] view plaincopystd::vectorkeypoints; cv::SurfFeatureDetector surf(2500转载 2015-03-06 17:02:04 · 1011 阅读 · 0 评论 -
OpenCV学习——查找轮廓
主要函数是 cvFindContours(tour_buf,storage,&contour,sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); tour_buf 是需要查找轮廓的单通道灰度图像转载 2015-03-07 14:33:02 · 572 阅读 · 0 评论 -
OpenCV学习笔记——对XML和YAML文件实现I/O操作
1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:[cpp] view plaincopystring filename = "I.xml"; FileStorage fs(filename, FileStorage::WRITE); \\...转载 2015-03-06 15:13:25 · 442 阅读 · 0 评论 -
基于C++的OpenCV常用函数
C++版本的好处:1、在于可以尽量避免使用指针这种危险的东西;2、不用费心去release资源了,因为在其destructor里面,系统会自动帮你搞定。3、在某些情况下会比C版本运行速度快。在文件中包含 using namespace cv; 1. loads an image from a file;2转载 2015-03-11 10:07:19 · 785 阅读 · 0 评论 -
OpenCV函数cvFindContours
提取轮廓在OpenCV里有一个函数 cvFindContours :[cpp] view plaincopyint cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,int header_size=sizeof(CvContour),int mode=CV_RETR_LIST,int method=转载 2015-03-06 11:20:15 · 449 阅读 · 0 评论 -
OpenCV学习笔记——2维特征Feature2D,SURF
基于特征点的图像匹配是图像处理中经常会遇到的问题,手动选取特征点太麻烦了。比较经典常用的特征点自动提取的办法有Harris特征、SIFT特征、SURF特征。先介绍利用SURF特征的特征描述办法,其操作封装在类SurfFeatureDetector中,利用类内的detect函数可以检测出SURF特征的关键点,保存在vector容器中。第二部利用SurfDescriptorExtractor类转载 2015-03-06 15:38:50 · 560 阅读 · 0 评论 -
OpenCV学习笔记——图像处理之直方图ImgProc
直方图histograms也是图像处理中经常用到的一种手段。新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势。先介绍下其相关的函数calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了这几个常用的函数以为,还有一些c函数写的直方图类CvHisto转载 2015-03-06 15:22:24 · 711 阅读 · 0 评论 -
轮廓的匹配
轮廓的匹配 如果要比较两个物体,可供选择的特征很多。如果要判断某个人的性别,可以根据他(她)头发的长短来判断,这很直观,在长发男稀有的年代准确率也很高。也可以根据这个人尿尿的射程来判断,如果射程大于0.50米,则是男性。总之,方法很多,不一而足。 我们在上文中得到了轮廓的这么多特征,它们也可以用于进行匹配。典型的轮廓匹配方法有:Hu矩匹配、轮廓树匹配、成对几何直方图匹配。 1.转载 2015-03-15 14:59:05 · 2018 阅读 · 0 评论 -
开运算和闭运算
(1)开运算 先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。 (2)闭运算 先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。 通常,由于噪声的影响,图象在阈值化后所得到边界往往是很不平滑的,物体区域具有一些噪声孔,背景区域转载 2015-03-15 14:54:24 · 12834 阅读 · 0 评论 -
opencv 基本数据结构
DataType : 将C++数据类型转换为对应的opencv数据类型enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 };// allocates a 30x40 floating-point matrix // CV_32FMat A(30, 40, DataTypeflo转载 2015-03-05 10:17:28 · 361 阅读 · 0 评论 -
OpenCV中Mat的C++用法介绍
Mat OpenCV 自 2001 年出现以来。在那些日子里库是围绕C接口构建的。在那些日子里,他们使用名为IplImage C 的结构在内存中存储图像。这是您将在大多数较旧的教程和教材中看到的那个。使用这个结构的问题是将 C 语言的所有负面效果都摆到了桌面上。最大的问题是手动管理。它是建立在用户来负责处理内存分配和解除分配的假设之上的。当程序规模较小时,这是没有问题的,一旦转载 2015-03-05 15:53:12 · 13418 阅读 · 0 评论 -
vector的用法
1.vector 的数据的存入和输出:#include#include#include using namespace std;void main(){ int i = 0; vector v; for( i = 0; i { v.push_back( i );//转载 2015-03-05 17:22:37 · 372 阅读 · 0 评论 -
OpenCV的Mat基本用法
一、矩阵基础操作:Mat image(240, 320, CV8UC3);第一个参数是rows,该矩阵的行数;第二个参数是cols,该矩阵的列数;第三个参数是该矩阵元素的类型。这句话表示创建一个大小为240×320的矩阵,里面的元素为8位unsigned型,通道数(channel)有3个。image.create(480, 640, CV8UC3);分配(或重新分配)image转载 2015-03-05 10:31:58 · 3922 阅读 · 0 评论 -
OpenCV数据格式转换
在mfc c++ 以及opencv 编写程序当中,很多常用的类型转换,现在总结一下。(注意加相应的头文件,这里不罗嗦)提纲:1. Mat ---> Iplimage2. Iplimage ---> CvvImage3. Mat ---> vector or vector4. vector or vector ---> vector> or vect转载 2015-03-05 10:19:54 · 1426 阅读 · 0 评论 -
OpenCV学习笔记——图像处理之滤波器ImgProc
先介绍几个最基本的核滤波器相关的类2D图像滤波器基础类BaseFilter:dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相关的调用函数为getLinearFilter、getMorphologyFilter单行核滤波器基础类Bas转载 2015-03-06 15:19:57 · 548 阅读 · 0 评论 -
OpenCV数据格式转换成Halcon数据格式HObject
HObject MatToHImage(Mat pImage,HObject &Hobj){if(pImage.channels()==1){int height=pImage.rows;int width=pImage.cols;uchar *dataGray=new uchar[width*height];for(int i=0; i{memc原创 2015-06-23 09:53:57 · 2308 阅读 · 0 评论