![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机视觉
文章平均质量分 60
NodYoung
专注于机器人,计算机视觉,机器学习
展开
-
OpenCV记录鼠标左键点击位置
如题,最近要帮师兄做一些图片标记的工作,很繁琐。写了些很简短的程序,放着吧,省的以后自己再用给弄丢了。 如下,程序完成的主要功能是:打开一个窗口,填充一张纯黑图片,但你在窗口中点击鼠标左键时,点击处会用红点标记,同时鼠标点击处的坐标值输出到.txt文件中。 不多说,上源码://---------------------------------【头文件、命名空间包含部分】-------------原创 2016-01-13 20:17:56 · 7490 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记六:图像处理
中间隔了好长时间没写啊,这段也没怎么用。一:内容介绍本节主要介绍OpenCV的imgproc模块的图像处理部分: 1. 线性滤波:均值滤波与高斯滤波 2. 非线性滤波:中值滤波、双边滤波 3. 图像形态学:腐蚀与膨胀,开运算、闭运算,形态学梯度,顶帽、黑帽 4. 漫水填充 5. 图像金字塔及图片尺寸缩放 6. 阈值化 二:学习笔记方框滤波(box filter)是不一定归一化的,而这原创 2016-10-18 19:51:58 · 1935 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记五:core组件进阶
一:内容介绍 本节主要介绍OpenCV的core模块基础部分: 1. 访问像素的一些方法 2. 图像混合的方法 3. 图像对比度、亮度调整 4. 离散傅里叶变换 5. XML和YAML文件的读取写入 二:学习笔记 1. 本章仍是介绍了一些core模块的一些比较简单的应用。 2. 在本章的大部分内容中,都透着用数字看待图像的观点。面对一副图像,别人看到的是美丽的画面及展示的内容原创 2016-09-27 16:03:55 · 1981 阅读 · 1 评论 -
《OpenCV3编程入门》学习笔记四:初探core组件
一:内容介绍本节主要介绍OpenCV的core模块基础部分: 1. Mat类的用法,及OpenCV中其他常用的数据类型 2. 基本绘图操作二:学习笔记1.core模块本章节开始介绍OpenCV的core模块http://docs.opencv.org/3.1.0/d0/de1/group__core.html ,重点讲了些Basic structures中的一小部分内容http://docs.原创 2016-09-26 16:57:13 · 2248 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记三:HighGUI图形用户界面
一:内容介绍 本节主要介绍OpenCV的HighGUI模块,并分享几个例子: 1. 用imwrite函数生成png透明图 2. 综合示例程序:图像的载入、显示与输出 3. 为程序界面添加滑动条 4. 鼠标操作 二:学习笔记 1. 此章节只是介绍OpenCV的一些HighGUI使用方法,并不涉及什么理论部分。关于HighGUI大家可参考官网HighGUI模块 http://docs.原创 2016-09-20 09:38:26 · 7525 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记二:快速上手OpenCV
一:内容介绍 本节主要介绍以下内容: 1. OpenCV3基本架构 及 官网使用说明 2. 官方例程介绍 及 简单例程赏析 二:学习笔记 1. OpenCV3的基本架构在书本P7页有介绍,介绍的挺好,我们也可以从http://docs.opencv.org/3.1.0/ 看出:OpenCV3是按模块组织的,其中又分Main modules和Extra modules ,书中也只是讲了常原创 2016-09-17 19:40:31 · 4129 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记一:邂逅OpenCV
一:内容介绍本节主要介绍以下内容: 1. OpenCV3环境搭建 2. 快速上手尝试:图像显示、读取并播放视频、调用摄像头采集图像二:学习笔记1. 环境配置在OpenCV3中,项目架构发生了一些变化,除了主仓库外新增了opencv_contrib仓库,里面包含人脸识别、新的边缘检测、SIFT算子、新的光流和追踪算法等。个人建议最好是配置一下opencv_contrib库,毕竟我们还是尽量跟随潮流原创 2016-09-14 10:50:10 · 10719 阅读 · 1 评论 -
Opencv图片转视频
利用opencv将一大堆排好的图片转换成视频,闲话少说,代码:#include <opencv2\opencv.hpp> #include <cstdio>using namespace cv; int main( ) { //【1】输出视频 VideoWriter writer("ICSI_cut.avi", CV_FOURCC('M', 'J', 'P', 'G'原创 2016-01-14 17:39:12 · 1768 阅读 · 1 评论 -
使用YOLO训练自己的数据样本经验总结
YOLO近一年多新出的一种object detection的方法,关于目标检测及YOLO的介绍可参见:基于深度学习的目标检测研究进展 , CVPR2016目标检测之识别效率篇:YOLO, G-CNN, Loc-Net ,RCNN学习笔记(6):You Only Look Once(YOLO):Unified, Real-Time Object Detection。 1. 好,现在我们使用yolo一原创 2016-11-03 04:45:07 · 25694 阅读 · 26 评论 -
Opencv3.1.0+opencv_contrib配置及使用SIFT测试
因为需要用到一些比较新的跟踪算法,这两天装了opencv3.1并配置了opencv_contrib,并使用了SIFT算法测试是否配置成功。 1.opencv3.1安装与配置 这里不多言,不熟悉的可以参考浅墨的博客:http://blog.csdn.net/poem_qianmo/article/details/19809337 2.opencv_contrib安装与配置 从opencv3以来原创 2016-08-11 14:10:08 · 32498 阅读 · 13 评论 -
《OpenCV3编程入门》学习笔记十:角点检测
一:内容介绍 本节主要介绍OpenCV的imgproc模块的角点检测(Feature Detection)部分: 1. Harris角点检测 2. Shi-Tomasi角点检测 3. 亚像素级角点检测 二:学习笔记 1. harris角点还是挺常见的,Harris角点 这篇文章介绍的比较好。 ————————–补充于16/11/10————————————- 昨天帮老师做几页原创 2016-10-21 15:04:41 · 4872 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记九:直方图与匹配
一:内容介绍 本节主要介绍OpenCV的imgproc模块的直方图与模板匹配部分: 1. 直方图的计算与绘制 2. 直方图对比 3. 反向投影 4. 模板匹配 二:学习笔记 1. 关于图像的HSV格式,平常老是用RGB了解这个较少,参见:HSL和HSV色彩空间 , 如何通俗地解释色彩三要素:色相、明度、纯度? , 什么是色像?什么是饱和度?什么是色温?什么是色调呢? 。原创 2016-10-20 16:59:36 · 2531 阅读 · 0 评论 -
计算机视觉初级部分知识体系
这两天总结了一下自己在计算机视觉初级部分的知识框架,整理如下。 个人所学并不全面(比如图像频域方面了解就比较少),仅做参考。图像点(pixel值)运算直方图;线性/非线性变换;灰度均衡化/规定化;H-S直方图图像几何变换平移、旋转、镜像、缩放(图像金字塔,图像多尺度表达的一种方法,高斯金字塔、拉普拉斯金字塔);仿射变换空间域滤波线性滤波 均值滤波、高斯滤波非线性滤波原创 2017-01-15 14:33:53 · 3337 阅读 · 0 评论 -
yolo训练之训练结果评估环节
在yolo中,怎么知道自己已经训练的怎么样了呢?自然是希望把训练过程中的loss等数据可视化一下,这篇文章中,我们主要就介绍一下这些。 1. 首先在训练开始的时候需要把终端信息记录到文件,我这里使用的命令是| tee train_log.txt ,可参考:Linux中记录终端(Terminal)输出到文本文件 。我们会得到这样一个文本文件: 2. 下面我们就可以用python对其进行处理了,原创 2016-12-29 09:20:05 · 12107 阅读 · 0 评论 -
Opencv视频转化为图片
这里把视频的一部分剪切出来,同时保存为图片和视频格式。通常是先把视频放一面,记下剪切段儿的帧数,再处理。 注意代码中视频的名字,像素及剪切的帧数等需要自己更改。 源码:#include <opencv2\opencv.hpp> #include <cstdio>using namespace cv; int main( ) { //【1】读入视频 VideoCap原创 2016-01-14 19:12:26 · 1463 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记八:图像轮廓与分割
一:内容介绍 本节主要介绍OpenCV的imgproc模块的图像轮廓与分割部分: 1. 查找并绘制轮廓 2. 寻找物体的凸包 3. 使用多边形将轮廓包围 4. 图像的矩 5. 分水岭算法 6. 图像修补 二:学习笔记 1. findContours()函数查找图像轮廓和canny检测边缘、hough检测直线,这些都非常使用(参见:OpenCV成长之路(8):直线、轮廓的提取原创 2016-10-19 19:51:00 · 6041 阅读 · 0 评论 -
基于深度学习的目标检测学习总结
在计算机视觉领域,“目标检测”主要解决两个问题:图像上多个目标物在哪里(位置),是什么(类别)。 围绕这个问题,人们一般把其发展历程分为3个阶段: 1. 传统的目标检测方法 2. 以R-CNN为代表的结合region proposal和CNN分类的目标检测框架(R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN, R-FCN) 3. 以YOLO为代表的将目标检测原创 2017-03-30 09:23:11 · 49537 阅读 · 3 评论 -
卡尔曼滤波之目标跟踪
本文目录: 1.关于卡尔曼滤波理论学习 2.卡尔曼滤波的两个简单使用示例 3. 卡尔曼滤波二维平面目标跟踪中的应用1.关于卡尔曼滤波理论学习之前的博文有关于卡尔曼滤波的资料,通俗易懂。这里总结一下Kalman的公式精华,输入麻烦,直接上自己之前的笔记了,如下: 最最重要的一点,在使用卡尔曼滤波之前,首先你得弄清楚你假设的动态系统模型(说白了还是调参,跟pid一样),然后直接使用算法就行了原创 2017-01-01 10:10:54 · 26211 阅读 · 6 评论 -
计算机视觉相关数据集和比赛
一. ImageNet Large Scale Visual Recognition Competition (ILSVRC)Imagenet数据集是目前深度学习图像领域应用得非常多的一个数据集,关于图像分类、定位、检测等研究工作大多基于此数据集展开。Imagenet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。Imagenet数据集文档详原创 2017-03-30 11:41:47 · 14640 阅读 · 0 评论 -
《视觉SLAM十四讲》书籍图片资源
chapter22-12-22-32-42-52-62-82-92-102-112-122-132-14chapter33-13-23-33-4chapter44-1chapter55-15-25-55-65-75-9chapter66-16-26-3chapter77-27-37-47-57-67-77-87-97-107-117-127-13chapter88-18-28-38-48-58-68原创 2017-04-29 12:23:28 · 6028 阅读 · 2 评论 -
显微操作中操作器末端的姿态评估
实验室的一部分个人工作,之前发过一篇这方面的博客关于探针末端跟踪的前期尝试 。哇塞,发现整整过去一年啦。。。。生如逆旅单行道,哪有岁月可回头。对不起,我没能活成你想要的样子。哈哈,下面正式切入主题。问题背景介绍上次也介绍了,但好像没介绍清楚。再来一遍,看图。 显微镜下就是这么一个操作的过程:通过微操作器末端(探原创 2017-03-22 17:00:54 · 931 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记七:图像变换
一:内容介绍本节主要介绍OpenCV的imgproc模块的图像变换部分: 1. 边缘检测:canny算子,sobel算子,高斯拉普拉斯算子(LOG) 2. 霍夫变换 3. 重映射 4. 仿射变换 5. 直方图均衡化 二:学习笔记1.造成边缘的原因景深不连续,反射率不连续(如表面材质的改变),光照不连续(阴影等),如下图 2 . 边缘检测的一般步骤:滤波(因为导数对噪声比较敏感,一般原创 2016-10-19 10:53:56 · 2067 阅读 · 0 评论 -
YOLO下一步:输出预测boundingbox做进一步处理
对于我们使用yolo做一下research中的其他应用而言,最终目的肯定不是看看预测boundingbox就ok了。 具体对于我而言,就需要在得到boundingbox后再找出目标的局部信息。下面简单介绍一下如何完成。 1.修改源代码 在源代码image.c中找到draw_detections()函数,print出方框的位置即可,如下: 2.记录终端输出到文本文件 我这里使用的命令是|原创 2017-01-15 14:46:45 · 10637 阅读 · 9 评论 -
《OpenCV3编程入门》学习笔记番外篇之OpenCV-Python使用
之前一直是使用OpenCV的C++接口来编程,由于python功能强大,现在也有很多人使用OpenCV-Python来完成图像处理的一些工作,因为其比较方便。 这两天由于要为object detection by learning 做一些准备工作,其实也就是把视频样本转换为图片,然后给每一个图片打标签。关于第2步可以直接使用github上的开源代码labelImg 来完成。第1步自己用OpenCV原创 2016-11-08 10:27:03 · 2881 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记番外篇之目标跟踪object tracking
这里介绍一下使用OpenCV进行目标跟踪的方法,之前用过一点。OpenCV中目标跟踪的一些比较新的方法(比如MIL、KCF、TLD等)都在opencv_contrib库里,所以首先你需要安装它,详见Opencv3.1.0+opencv_contrib配置及使用SIFT测试 。 关于tracking这一块可参考Opencv的官网 Tracking API 、Introduction to OpenC原创 2016-11-08 09:54:11 · 6016 阅读 · 1 评论 -
基于人工神经网络的数字字符识别系统demo(一):字符去噪、分割
最近尝试利用神经网络做数字字符识别,大概做了一下。整体很简陋,就是先对测试图片做下预处理,然后通过重采样提取特征,最后通过神经网络进行训练和识别。感兴趣的可以点击这里 了解一下,欢迎多多指教。这里我大概介绍一下怎样将一副包含多个字符的图片进行去噪处理进而分割出单个字符,关于opencv中怎样使用ANN详见Opencv中ANN神经网络使用示例。原始图: 效果图: 下面介绍一下处理步骤,1.载入原创 2016-03-29 11:42:52 · 4902 阅读 · 1 评论 -
关于图像处理中的傅里叶变换
图像处理中傅里叶变换这一块一直比较难理解,这两天抽空一直在看,这里推荐几个网址: 1. CSDN上少有的杰出女程序员:《图像傅里叶变换》http://blog.csdn.net/abcjennifer/article/details/7622228 2. 还有她文章中提到的参考网址:An Intuitive Explanation of Fourier Theory http://cns-alu原创 2016-04-06 11:11:26 · 5112 阅读 · 0 评论 -
Opencv中ANN神经网络使用示例
前一段儿想用opencv做一下数字识别,用神经网络做识别。 在网上搜了一下关于opencv中ANN的使用方法,@小魏的修行路 的【模式识别】OpenCV中使用神经网络 CvANN_MLP 这篇文章写得挺好,照搬里面的例程运行了一下,发现有些错误,而且从他最后的结果图片来看明显是分类分错了。但是他的这篇博文还是写的挺好的,简单,通俗易懂。关于OPENCV中神经网络相关的使用方法这里就不作介绍了,大家原创 2016-03-24 17:42:26 · 14281 阅读 · 13 评论 -
关于探针末端跟踪的前期尝试
实验室的一个关于object tracking的问题,只开头做了一点,暂时没必要接着做了,先放这里吧。 如图所示,这是从视频中截取的一张图片。环境中只有探针、平躺的donut和非平躺的donut三类事物,背景较为纯净。主要目标:实时跟踪视频中探针的末端位置(包含遮挡和非遮挡情况)。背景介绍:其实这是一个微观环境下的自动化操作问题,视频中的探针是由电机带动的,目标就是拾取图中的donut. 面原创 2016-03-23 21:04:57 · 1539 阅读 · 0 评论 -
Opencv视频某一目标点坐标标定
前一段儿帮师兄标定一个视频中固定的目标上某一点的坐标所写的视频。 程序开始运行,打开窗口出现视频的第一帧,当用鼠标左键点击目标点后,程序将目标点的坐标输出到.txt里,同时自动切换下一帧图像,继续标定。 源码:#include <opencv2\opencv.hpp> #include <cstdio>using namespace cv; int main( ) { /原创 2016-01-14 19:16:57 · 4880 阅读 · 1 评论 -
OpenCV视频剪切
做实验的视频通常在标定之前需要剪切一下,视频都很短,我通常都先打上帧数,播放一遍,然后把其中一部分剪出来。 超级简单,直接上源码吧,这里是将这个视频的第300至1180帧之间的视频剪出来:#include <opencv2\opencv.hpp> #include <cstdio>using namespace cv; int main( ) { //【1】读入视频原创 2016-01-14 17:28:26 · 4805 阅读 · 0 评论 -
OpenCV读取一张图片的Mat数据类型到.txt文件
刚学计算机视觉,都听老师讲每一张图像都是用数字来存储的,各种存储方式等。然后就开始用各种数学方式对图像进行各种变换、处理,但是自己没亲眼看到数据总是感觉不太靠谱,或者自己用一些算法时不能亲眼看到它对图像中每个像素的处理。这两天初学OpenCV,受好奇心驱使想了解图像的最底层数据。网上查了各种资料,最终实现将一张图片的各个点输出到屏幕或.txt文件。 1.在OpenCV中,我们一般使用Mat数据类型原创 2015-12-04 14:10:27 · 6761 阅读 · 0 评论 -
OpenCV中将MAT类型的对象作为InputArray类型的对像传递给函数
初学OpenCV发现,发现这样一种情况:void imshow(const string& winname, InputArray mat);明明是InputArray类型的形参,而我们一般都使用Mat类型的实参来直接传递。 这是怎么回事呢? 说白了,这是一个类型的对象转换为另一个类型的对象。使用C++中的类型转换构造函数来完成,关于类型转换构造函数这里有个链接,仅供参考:(C++数据类型转换以原创 2015-12-07 10:52:02 · 8579 阅读 · 1 评论 -
openCV学习之提取外轮廓
在OpenCV中我们常用FindContour来提取轮廓,但常常根据需要会进行一些稍微复杂的操作,比如提取最外层轮廓等。 示例1: 示例2: 这里给几个网站供参考: 《openCV学习之轮廓》http://www.cfanz.cn/index.php?c=article&a=read&id=56624 《OpenCV函数cvFindContours》http://blog.csdn原创 2016-01-20 19:59:12 · 7895 阅读 · 0 评论 -
直方图均衡化原理之概率论相关知识
直方图均衡化原理之概率论相关知识写这篇文章的主要目的是解释一下在直方图均衡化理论基础中所用到的概率论知识。原创 2015-06-24 02:05:36 · 2885 阅读 · 2 评论 -
RGB图片转换为灰度图批处理
工具性demo,从做视觉的时候可能会用到。即将一个文件夹中的rgb序列图像全部转换为灰度图保存,便于做一些其他处理。 不罗嗦,直接上源码吧:imPath = 'img'; imExt = 'jpg'; %原图像文件夹名和图像格式gray_imPath = 'img_gray'; %灰度图像文件夹名% check if directory and files existif isdir(im原创 2016-06-02 10:12:12 · 2850 阅读 · 1 评论 -
光学显微镜自动聚焦之找出聚焦图像位置
想起高中物理课上讲过:在光学显微镜下观察及操控一个对象,第一步就是要进行对焦。这里实验室要做一个关于显微镜自动对焦的系统。简而言之,大致分为以下三个方面:A. 设计一个机构,将电机连接到显微镜的细准焦螺旋,用电机代替手工调焦。这是实现自动化必备的基础,这里用的是步进电机。B. 控制电机部分,主要涉及电机的驱动、控制以及与电脑端之间的通信。C. 视觉反馈部分,通过对显微镜采集到的图像进行视觉评估找出聚原创 2016-07-13 17:09:04 · 9914 阅读 · 5 评论 -
《OpenCV3编程入门》学习笔记番外篇之图像形态学处理
关于图像形态学在《OpenCV3编程入门》学习笔记六:图像处理 中涉及到过,但给的例程不是特别好。这里再给出一个比较直观的例子。 源码:#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat g_srcImage, g_dstImage; //原始图和效果图int g原创 2016-11-06 16:32:07 · 1559 阅读 · 0 评论 -
《OpenCV3编程入门》学习笔记之官方例程学习
OpenCV官方资料做的相当完善,其中官方例程就是非常好的参考资料。 1. 其在...\opencv\sources\samples\cpp\tutorial_code 路径下,如图: 这里以video下的bg_sub.cpp为例,其作用时背景移除。注意要在属性中填写命令参数,如下: 2. 官网上也给了一些例程:Examples原创 2016-11-06 16:15:31 · 4179 阅读 · 2 评论 -
《OpenCV3编程入门》学习笔记之书本资源汇总
这里主要汇总一下书中的图片素材和函数清单。 函数清单: 图片素材: poster_book.jpg poster_book_1.jpg poster_book_2.jpg poster_building.jpg poster_building_1.jpg poster_building_2.jpg poster_car.jpg post原创 2016-11-06 15:01:30 · 3255 阅读 · 0 评论