机器视觉
文章平均质量分 77
主要介绍作者在机器视觉方向上的一些研究,因为长期从事该方向,因而积累了一些文章集合成专栏。
只要研究中涉及到值得分享的东西都会放上来。
_寒潭雁影
中科大IT向博士,熟悉MFC,C++,C等语言,参与过ffmpeg、机器视觉、并行计算、数据库等相关项目的研发和代码的编写http://blog.csdn.net/weixinhum为本人博客,上面记录了本人的一些技术总结
展开
-
C/C++ 图像处理(19)------细化算法
准备了半年多的博士考试终于结束了!现在开始整理半年来没来得及发的一些技术总结。“C/C++ 图像处理”系列文章是随着本人做东西的先后写成的,文章的前后关系可能不太明显,在这里先跟关注专栏的各位老哥说声抱歉,在“深度学习”系列文章中会尽量改掉这个较为随意的风格,让文章更具可读性。之前做的项目有关于“图像细化”方面的应用,因此研究了ZhangSuen细化算法,在这里总结一下:首...原创 2018-05-10 00:49:08 · 13215 阅读 · 26 评论 -
C/C++ 图像处理(18)------人脸检测
人脸识别包括人脸检测和识别两个部分一般的逻辑是先检测人脸位置,然后再识别。具体的流程是准备要识别的人脸数据->检测人脸->学习人脸特征并生成模型检测人脸->对比检测出来的人脸和模型的相识度->给出识别结果本篇文章用OpenCV实现了这两个过程,具体的代码有参考网上的代码,如有雷同,绝非巧合具体的检测和识别原理不在本篇文章的范畴之内,望见谅人脸原创 2018-02-01 18:00:50 · 5133 阅读 · 3 评论 -
C/C++ 图像处理(17)------基于混合高斯模型去除背景法
在图像处理中,常常需要通过去除图像的背景来获得图像中的人或者其他一些物体等前景对象。 传统的算法是先拍一张背景图像,然后将之后拍摄到的图像减去这张背景图像再做一些滤波处理以取得前景对象。这种方法的好处是简单,但简单之余,一旦背景发生了变化,变化的部分就会被识别为前景,以致算法失效,因此背景一有变动则需重新拍摄背景图像,非常麻烦。 混合高斯模型去除背景法则没有这个问题,其在加入的图像中不断学习,分原创 2017-04-06 17:38:07 · 6331 阅读 · 0 评论 -
C/C++ 图像处理(16)------图像轮廓の最小外接矩形
有时做图像处理,会遇到图像中大部分信息是冗余的情况,以下图为例: 假设图中黑色部分才是我们需要研究的对象,则外围的一堆白色是我们希望去掉的,这个时候用最小外接矩形来框住黑色部分,进而截取该部分的信息而忽略掉其他的信息变得实用。 下面,就给出查找图像轮廓中最小外接矩形的代码,后面有空再给出在图像中截取外接矩形的部分成为新图像的代码。#include "opencv2/highgui/highg原创 2017-01-24 17:44:11 · 8424 阅读 · 0 评论 -
C/C++ 图像处理(15)------DXF文件の读取、绘图与显示
关于DXF文件的读取自几年前做项目的时候就用到了,不过当时是另外一个朋友负责的就没在意,直至最近的项目又要用到方才自己动手去弄。 因为几年前项目的代码还在,因此看了下发现之前朋友是用dxflib开源库实现的,因此也用了同样的库。 上网一查发现资料相当少,因为事很多比较忙,不大想去慢慢看说明文档,遇到一些疑问便在网上一个实现了功能的博客中问,哪知博主直接回复如下: 实在让人无语,只得让实验室原创 2016-12-27 17:21:55 · 20531 阅读 · 61 评论 -
C/C++ 图像处理(14)------图像の轮廓填充
所谓图像的轮廓填充,是建立在图像的轮廓已然查找完成的情况下的,以下面图像为例: 我们首先需要查找到图像中的圆形和正方形的几个轮廓,之后才能对这些轮廓进行处理(查找的过程我们用到OpenCV的findContours函数)。 在得到轮廓之后,难点就转变为如何填充轮廓了,对于左上角的圆来说,直接填充即可,然而对于圆环和“田”字,则一般只希望填充两个轮廓直接的区域,中间的孔洞则保留,因此在对轮廓进原创 2016-11-25 16:03:15 · 6903 阅读 · 1 评论 -
C/C++ 图像处理(13)------双目图像の深度图生成
双目图像可用于生成具有深度的三维图像,其是通过模仿动物双眼的工作机制而来。关于其相关的算法,现如今研究的人很多,但仍离动物双眼的视觉效果千里之遥,只能用在非常有限的范围之内。 近来由于项目所需,要用到双目图像生成深度图,因此做了些研究,然并未深入理解其原理,因而也不在此处做更多的讨论。 本篇文章记录下用网上给出的标志双目图像,且利用OpenCV提供的相关函数计算出双目图像的深度图的实现过程。原创 2016-10-21 16:57:58 · 13592 阅读 · 6 评论 -
C/C++ 图像处理(12)------图像の透视变换
图像的透射变换,在图像处理中经常被用到,本篇文章用以记录相关的一些算法研究和内容。由于作者近期比较忙,暂时只是记录了用OpenCV如何实现该算法,后续会加上相关的内容。#include #include using namespace cv;int main(){ //读入待处理图像 Mat image = imread("矫正后图像.jpg"); Mat原创 2016-07-24 00:08:48 · 5575 阅读 · 2 评论 -
C/C++ 图像处理(11)------图像の仿射变换
图像的仿射变换,用以改变观看图像的视角,在图像处理中经常被用到,本篇文章用以记录相关的一些算法研究和内容。由于作者近期比较忙,暂时只是记录了用OpenCV如何实现该算法,后续会加上相关的内容。#include #include using namespace cv;int main(){ //读入待处理图像 Mat image = imread("矫正后图像.jp原创 2016-07-23 17:04:50 · 5325 阅读 · 0 评论 -
C/C++ 图像处理(10)------相近图像の匹配
近期做项目调研的时候刚刚好需要用到图像匹配相关的算法,因此在这里做下记录。 相近图像的匹配,其实归根结底只有一个目的,就是找到两张图像中反映相同现实位置的几个像素点,然后获得到这些像素点的坐标,以供后面仿射变换等算法进行处理。 其基本思路如下: 1. 检测两张图像的特征点 2. 匹配检测到的特征点 3. 对匹配到的特征点对进行排序 4. 得到匹配度高的前n对特征点 5. 在原创 2016-07-13 00:43:24 · 6131 阅读 · 2 评论 -
C/C++ 图像处理(9)------图像の桶形畸变矫正
广角镜头的摄像设备拍摄出来的图像经常会有桶形畸变的问题。原因在于广角镜头使用的是凸透镜,初中物理知识告诉我们凸透镜会对光线起汇聚作用,这是光的折射造成的。而离镜头中心越远,折射效果越强,因而其拍出来的照片会以镜头中心为圆心,呈圆形向外扩展失真,如下图所示: 像上面这样的图像,如果用在一些还原性要求较高的场景是不行的,需要对图像做畸变矫正。而由于很多时候我们并不知道摄像头的物理...原创 2016-03-19 17:31:19 · 23120 阅读 · 21 评论 -
C/C++ 图像处理(8)------图像の柱面投影算法
图像的柱面投影算法,在360°全景图像应用中几乎一定会用到。而为何要用该算法,原因解释起来非常简单。(这里加上一张摄像头图像)可以想象几个摄像头围成一个圆圈,然后分别拍摄图像,而每两个相邻摄像头之间的图像会有一部分的重叠,原创 2016-02-02 02:53:21 · 16342 阅读 · 5 评论 -
C/C++ 图像处理(7)------图像の球面贴合算法
关于图像的球面投影,是全景应用中比较常见的技术,而现有的一些资源大多写的不太好,比较晦涩。在经过一段时间的摸索之后,发现了这个博客写的相对可以,本文的实现也将其作为重要的参考,如果看过本文之后有什么不明白或者觉得不好的地方可以去看看。 在展看本文之前,先来看看下面的两张图片:原创 2016-01-10 18:33:06 · 6870 阅读 · 7 评论 -
C/C++ 图像处理(6)------图像の连通域查找和分别上色算法研究
#include #include #include //OpenCV包含头文件 #include #include //容器头文件 using namespace std;using namespace cv;int valuearray[255] = {0};//记录连通域数值对应关系class colorobj{public: int value; Scalar原创 2015-05-11 20:59:21 · 6396 阅读 · 2 评论 -
C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
图像的线性变换,是比较容易理解的。由线性变换公式y=kx+b知道,图像的像素点灰度值为x,经由线性变换输出y再替换掉原像素点的灰度值x实现映射。其作用是当图像像素的灰度值集中在一定范围如[a,b]时,可以经由线性变换公式将其映射到新的范围[c,d],如果将c取为0,将d取为255,则映射到整个灰度级中,即最大可能的加大了图像的对比度。经过上面的分析,再由数学解方程的思路我们知道只要定出a,b,c,原创 2014-09-26 23:41:19 · 3456 阅读 · 0 评论 -
C/C++ BMP(24位真彩色)图像处理(4)------图像の旋转
历经一个多月,CSDN貌似终于好像把文章列表阅读量信息归零BUG给修好了,于是乎放篇做期末大作业时写的文章上来测测效果,可别又像上次一样一发文章就又坑爹了啊!本篇谈的是图像的旋转,不算是什么新鲜的题目了。但是现在由于很多工具如MATLAB、OPENCV等都把算法写好给用户调用,导致大多用户只知其然不知其所以然,所以回顾一下也是好的。图像的旋转,说到底就是每个像素点绕着某个圆心旋转一定角度。原创 2014-09-21 01:18:33 · 8569 阅读 · 0 评论 -
C/C++ BMP(24位真彩色)图像处理(2)------图像の截取
对上一篇博客《图像处理模板---针对bmp图像数据区的操作和输出处理完成图像》原创 2014-04-29 03:44:33 · 3521 阅读 · 1 评论 -
C/C++ BMP(24位真彩色)图像处理(3)------图像の放大缩小(双线性插值)
图像的放大缩小其实是一回事,都是先创建一张空白目标图像(放大缩小后的图像),其大小就是想要放大缩小后所得到的图像大小。创建图像后我们并不知道这张图像里面的各个像素点RGB(或灰度)值是多少,这个时候就需要经过一个算法去算目标图像的像素点RGB(或灰度)值。基本上所有相关的算法都是通过算出目标图像的像素跟原图像的像素的映射关系来实现的,但是不同的算法由于这个映射关系的求取不同,处理效率和处理效果会有原创 2014-08-31 21:27:53 · 12261 阅读 · 2 评论 -
C/C++ BMP(24位真彩色)图像处理(1)------图像の打开与数据区处理
在图像处理过程中,通常以MATLAB代码进行模拟,原创 2014-04-20 17:44:45 · 8999 阅读 · 7 评论