Computer Vision OpenCV
文章平均质量分 61
wwwsssZheRen
Zhejiang University, Computer vision
展开
-
OCR General
https://github.com/Ewenwan/MVision/tree/master/Character原创 2020-04-20 18:42:06 · 518 阅读 · 0 评论 -
opencv3.2中SVM,KNN算法的使用
SVM分类器opencv3.2中机器学习算法的使用与之前的版本不同,假设训练数据(分类样本)为Mat TrainData(这里统一在Reshape为一行之后变为CV_32FC1),对应训练数据(分类标签)为Mat TrainLabels(这里使用CV_32SC1类型);// 创建SVM分类器并且配置分类器属性: Ptr<SVM> svm = SVM::create(); svm-&g...原创 2018-03-13 17:18:55 · 1571 阅读 · 0 评论 -
halcon变量,图像与C++的一些转换(未完待续)
1、将HTuple转化为C++的类型将Local control variables(HTuple类型)转化为C++基本类型,其中I()代表int类型,L()代表转化为long类型,Num()代表返回数据个数,D()代表转化为double类型,S()代表转换为string类型。HTuple hTuple = 1234; int i = hTuple[0].I(); // i=123...原创 2017-07-26 11:32:21 · 5305 阅读 · 3 评论 -
在visual studio2015 C++下配置halcon环境一劳永逸的方法
在visual studio2015 C++下配置halcon环境一劳永逸的方法,其原理可以参照2017-6-7发布的文章在visual studio2015中配置OpenCV的环境一劳永逸的方法首先需要新建一个工程,找到View下面的Property Manager,由于我这边暂时安装的HALCON11.0是属于32位版本,故选择Win32下,至于是Release版本还是Debug版本的话主...原创 2017-06-21 12:49:39 · 4659 阅读 · 0 评论 -
Visual Studio2015下配置Halcon环境(使用的是VS下的C#)
当在第一次调用halcon的时候在工具箱中需要有这样一个插件: 下面讨论下如何产生这个插件,首先需要新建一个C#的工程,这一点就不多说了。然后在工具箱中右击:Choose Items(生成项)。我们需要在.NET Framework Components下面包含DLL文件,首先选择HWindowCotontrol这一个项,有的时候当列表中没有这个项的时候,则点击“Browse”按钮找到...原创 2017-06-20 12:41:14 · 4292 阅读 · 0 评论 -
opencv视频流处理VideoCapture&VideoWriter
一、图片视频流的读取(调用VideoCapture类) Class for video capturing from video files, image sequences or cameras. The class provides C++ API for capturing video from cameras or for reading video files...原创 2018-08-16 17:00:33 · 3570 阅读 · 0 评论 -
模板匹配理论与opencv实践
一、opencv灰度匹配cv::MatchTemplate 1)cv::MatchTemplate是灰度匹配,该函数的优点是精度高,因为是一个个像素点的比较;缺点是计算时间长,因为要计算的点比较多,一个个比较花费时间长。如果从图像金字塔的角度,把模板和图像都降低分辨率来匹配,这样时间上可以提高一个数量级。但问题又来了,分辨率要降低到多少是合适的,如果看一个东西,缩...原创 2019-04-02 15:58:43 · 1502 阅读 · 0 评论 -
ORB特征提取、匹配及位置估计
1、什么是ORB特征点? 图像特征点可以理解为图像中比较显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。ORB采用FAST(features from accelerated segment test)算法来检测特征点。这个定义基于特征点周围的图像灰度值,检测候选特征点周围一圈的像素值,如果候选点周围领域内有足够多的像素点与该候选点的灰度值差别够大,则认为该候选点为一个特征...原创 2019-04-17 13:46:10 · 7400 阅读 · 0 评论 -
最小外接矩形minAreaRect()及截取旋转矩形区域
参考:https://blog.csdn.net/u010847519/article/details/72625326原创 2019-05-21 10:10:55 · 3422 阅读 · 0 评论 -
光流法tracking与opencv实现
光流原理 图像目标位置识别到以后,由于每次识别需要花费的时间较长,用每帧识别方式对于视频中目标的实时检测是不合理的,为了提高速度与实时位置输出效率,需要引入实时跟踪算法,Tracking。跟踪Tracking中最常见的使用方法是光流法。 光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上...原创 2019-11-19 17:44:06 · 993 阅读 · 0 评论 -
opencv提取轮廓与判别
一、findContours的基础知识<strong>下面内容摘自于博文:http://blog.csdn.net/dcrmg/article/details/51987348</strong>OpenCV中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下findContours方法中各参数的含义及用法,...原创 2017-08-01 21:25:57 · 2044 阅读 · 0 评论 -
OpenCV中实现循环读图&&将当前图片写到某一个文件夹
一、在OpenCV中实现循环读图片,需要使用sprintf将char字符串组合起来。#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;using namespace cv;int main(){ char filename[100]; for (int i = 1; i <原创 2017-07-30 22:17:14 · 5490 阅读 · 1 评论 -
用opencv打开苹果手机ip_camera
关于苹果手机打开ip_camera的资料网上比较上,并且操作起来与实际大有出入。个人在苹果手机上安装的是这么一个APP,这种APP可以到苹果的官方网站上下载,暂时用的免费版的IP摄像头,有水印。关于这款APP只要多玩一下都熟练了,APP内部用使用说明。关键是要提取的是:用户名,密码,IP地址。新建opencv的C++项目,代码如下:#include #include #in原创 2017-06-08 22:45:24 · 2178 阅读 · 4 评论 -
Zbar和OpenCV识别条形码,比halcon中find_bar_code好用
#include#include "zbar.h" #include using namespace std;using namespace zbar; //添加zbar名称空间 using namespace cv;int main(int argc, char*argv[]){ // 设定视频流 VideoCapture vcap("转载 2017-06-29 11:20:27 · 3377 阅读 · 0 评论 -
opencv在输出不同文件格式输出的时候文件空间的大小不一样
opencv用imwrite可以输出不同的文件格式如bmp,png,jpg这些图片的格式。在main函数中写入一下一串代码时候: // 读入一幅图像Mat img;img = imread("C:/Users/SLJ/Desktop/example/pic2.jpg");if (!img.data){cout return -1;}原创 2017-06-08 16:06:24 · 1359 阅读 · 0 评论 -
相机属性参数
以下是以海康相机为例的一些相机的属性参数:1、Image Fornat Control(图像格式控制)Pixel Format 像素格式 Mono8(存储为单色8Bit图片)Pixel Size 像素大小/深度 BPP(bits per pixel) 图像的像素深度2、Acqusition Control(采集控制)Acquisition Mode 采集模原创 2017-09-04 16:07:45 · 3087 阅读 · 0 评论 -
OpenCV-----Mat, Mat中插入一行可用push_back与vector类似
Mat是OpenCV中最为重要的属性。Mat的官方解释可以参看OpenCV的help文档。以下是Mat中一些重要的性质: 1.浅拷贝和深拷贝OpenCV is an image processing library. It contains a large collection of image processing functions. To solve a computationa...原创 2017-09-13 16:45:12 · 6560 阅读 · 0 评论 -
图像的旋转、仿射变换、透视变换截取图像部分区域
用仿射变换实现图片的旋转,只需要输入变量为原始图片,图片旋转的角度,输出变量为旋转后的图片!注意调用下列函数时,旋转的角度为角度制参数,而不是弧度制参数,如40°,-19.2°。/*// 函数名称:void WarpAffinerotateImage(Mat img, Mat &img_rotate,float angleHough)// 功能:放射变换,得到不失真旋转图// 输入元素:原创 2017-08-24 14:18:00 · 1257 阅读 · 0 评论 -
图像离散傅里叶变化幅度谱检测---在条形码识别中的作用
以下代码是图像离散傅里叶变化幅度谱检测: //////////////////////////////////////////////////////////////////// /////////////////////////以下是离散傅里叶变化///////////////////////// ////////输入图像为imageSobelOut,所得到的傅里叶频谱图为ma原创 2017-07-20 17:45:15 · 640 阅读 · 0 评论 -
霍夫变换的原理 及 一种参数迭代的自适应寻找最佳霍夫直线的代码(在条码识别中的应用)
霍夫变换(Hough Transform)是一种识别几何形状的方法!霍夫变换的基本原理是利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。霍夫变换于1962年由Paul Hough 首次提出,后于1972年由Richard Duda和Peter Hart推广使用,经典霍夫变换用来检测图像中的直原创 2017-08-28 22:15:12 · 2170 阅读 · 0 评论 -
关于OpenCV源码的查看&&用CMake编译其他vs版本的opencv
openCV源码查看对于大部分刚刚使用OpenCV的用户而言,只需要用调用OpenCV的函数即可。但有时候我们想要查看OpenCV的源代码,例如查看cv::imread()这个函数,此时只需要鼠标左键go to declaration(查看声明)即可,但我们发现只是进入了一个声明而没有源代码,如下图所示。当我们想要进入它的定义(go to definition)时却什么也不能打开,这又是什么原...原创 2017-06-14 21:46:12 · 2279 阅读 · 0 评论 -
opencv中遍历每一个像素点进行处理
有时候我们需要遍历Mat中的每一个像素点,并且对像素点进行处理,这里以图像所有像素点都减去div(div属于int类型)void colorReduce(Mat& inputImage, Mat& outputImage, int div){ // 参数准备 outputImage = inputImage.clone(); int rowNumber = outputImage.r原创 2017-07-04 12:36:56 · 9812 阅读 · 0 评论 -
在OpenCV某一个算子中考察某该算子的一个参数对图像处理的影响,通过循环从而选择最佳参数的方法
在OpenCV开发机器视觉项目时,往往会对某一个算子的某个参数的无法定夺,需要找到一种便捷的方法考察随着该参数的变换,图像处理的结果呈现何种变化!OpenCV中可以使用一个for循环,或者while循环来观察不同参数图像处理后的结果,从而可以判别出最佳参数。上文《霍夫变换的原理及其在条码识别中的应用》中确定最佳HoughLines是while循环寻求最佳霍夫直线,以下进行举例为,调整canny算子原创 2017-08-30 10:34:32 · 394 阅读 · 0 评论 -
OpenCV Basic
一、通道分离 将一张RGB图片进行分离使用split函数,函数的原型为void split(const Mat& src,Mat *mvBegin); 其中第一个参数为要进行分离的图像矩阵,第二个参数为Mat数组的首地址,或者一个vector<Mat>对象。需要注意的是,opencv中的通道是反过来的BGR。std::vector<Mat> ...原创 2017-10-07 20:58:03 · 352 阅读 · 0 评论 -
图像预处理(高斯滤波、直方图均衡化)
一、什么是灰度级直方图&&灰度直方图的性质 灰度级直方图是反应一幅图像中的灰度级与出现这种灰度的概率之间的图形。如下图,其中所有像素点出现频率累加值为1:性质1:它只反应该图像中不同灰度值出现的次数,而未反映某一灰度值像素所在的位置。也就是说,它只包含了该图像中某一个灰度值的像素出现的概率,而丢失了其所在位置信息。性质2:任何一幅图像,都能唯一地确定出一幅与它对应的原创 2017-10-20 08:27:02 · 3539 阅读 · 0 评论 -
OPENCV阈值处理threshold
再次强调关于OPENCV官方论文的解读参照:https://docs.opencv.org;本文中的opencv阈值处理介绍主要也是摘自于这一说明文档。OPENCV中阈值处理定义的类型为:double cv::threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type);其中:...原创 2018-01-22 14:10:27 · 799 阅读 · 0 评论 -
在visual studio2015中配置OpenCV的环境一劳永逸的方法
1.打开visual studio2015并且新建一个工程,在View下找到Proper Manage,(在【视图】菜单栏中找到【属性管理器】)。2.找到以后在红圈“Microsoft.Cpp.x64.user”选项中右击属性property,然后设置相应的opencv环境的配置。3. 配置完成后,可以关闭这个项目,当重新启动另外一个项目的时候,会自动配置ope原创 2017-06-07 17:32:32 · 1663 阅读 · 0 评论