图像处理工程师,专注图像处理多年,长期奋斗在图像增强、识别一线。实战经验丰富,研究开发的连铸体拼接算法、人脸美化算法、红外线血管增强识别系统、中药识别系统、石材大板识别系统等均已投入使用。对opencv有着深入理解和解析,以jsxyhelu账号参与OpenCV项目。
Cimg代码初探 程序设计最为激动人心的地方,在于丰富的并且容易被查阅到资料。比如对于图像处理,固然有Opencv等较为丰富、被广泛知晓的类库;也有其他很多具有一定特色的类库。
GOICE项目初探 在图像拼接方面,市面上能够找到的软件中,要数MS的ICE效果、鲁棒性最好,而且界面也很美观。应该说有很多值得学习的地方,虽然这个项目不开源,但是利用现有的资料,也可以实现很多具体的拼接工作。
http://pan.baidu.com/s/1i5JGBFB 编写一个图像处理类的程序,实现缩略图是非常自然的想发。基于mfc+opencv框架,实现以下代码 style child border none 一、填写界面 主要实现图片的添加、删除、显示 左边是listctrl控件(alignment为top),右边是textbox控件(client edge 为true)。
http://pan.baidu.com/s/1hrQTWDe 已经成功 ; 来自为知笔记(Wiz) 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
视频摘要 视频浓缩(一) 视频摘要又称视频浓缩,是对视频内容的一个简单概括,以自动或半自动的方式,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合。
多线程程序我本来是能够来写的。但是由于在图像处理的过程中,对于这方面知识使用的比较少,造成重复忘记的情况。这里再次进行整理学习,特别注重和“图像处理”理清关系,为下一步使用奠定基础。 这里实现的是工作者线程 在.h文件中定义 struct threadInfo { UINT nMilliSecond; CProgressCtrl* pctrlProgress; }; UINT ThreadFunc(LPVOID lpParam); 这些是需要在dlg文件外部的 CWinThread* pThread; 在内部的。
一直以来,我使用的方法都是shiqiyu在opencvchina上面提供的引入directshow,并且采用cvvimage和cameraDs的方法。这个方法虽然在xp/win7/win8下面都能够成果使用,但是一直以来我都没有动机去深入看一看这个方法。
【blog算法原理】RANSAC和FitLine 如果已经有一系列图片,需要拟合出最为合适的一条直线出来,这个时候你会选择RANSAC还是FitLine。 一、算法定义; RANSAC是实际运用非常广泛的算法,它的数学表示为 "Ransac 是解决这类问题的代表性算法。
浏览网页的时候发现一篇不错的文章"用Python和OpenCV创建一个图片搜索引擎的完整指南"http://python.jobbole.com/80860/.作者在浏览自己旅游的照片的时候,发现照片太多了分类不过来,一时技痒写了个分类软件,虽然简单但是有用。
【blog算法原理】Opencv中直线的表示方法 一、问题的提出: 在实际项目编写过程中,需要对直线(Line)进行特定的处理。
opencv的实用研究--分析轮廓并寻找边界点 轮廓是图像处理中非常常见的。对现实中的图像进行采样、色彩变化、灰度变化之后,能够处理得到的是“轮廓”。它直接地反应你了需要分析对象的边界特征。
WPF的研究和反思 目前是否适合使用wpf WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。
【项目实战派】图像处理项目的硬件平台选型 一直以来我都对嵌入式系统比较感兴趣,因为感到图像处理最终还是要走向便携式、移动化的。这里讲自己对图像处理项目的硬件平台选型这块的想法进行交流,欢迎交流、批评。
【项目实战派】触摸屏程序设计要点 触摸屏作为一种更为直接的人机交互方式,现在广泛运用于智能手机、工业控制、场景展示等许多场合。作为程序员,如何理解触摸屏程序设计?如何做好的触摸屏程序设计?现在已经有的资源包括那些?借着项目牵引,我对这个问题进行一定探索,经验有限,欢迎批评交流。
基于“局部标准差”的图像增强(原理、算法、代码) 一、理论 图像增强算法的基本原则是“降低低频区域,突出高频区域”,以此强化边缘,达到增强的目的。最简单的例子就是通过原始图像减去高斯模糊处理后的图像,就能够将边缘强化出来。
// mix.cpp : 图像mix // #include "stdafx.h" #include #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”。而在实际的代码编写过程中,很多时候想把已经写好的matlab函数融合进去,但是依然是将图片作为参数传递比较成为问题。
[blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数 一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找到了比较好的资料。
基于clahe的图像去雾 通过阅读一些资料,我了解到clahe算法对图像去雾有所价值,正好opencv中有了实现,拿过来看一看。 但是现在实现的效果还是有所差异 #include "stdafx.
相关说明: 首先进行一下相关说明。在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求、图片和其他资源,都是我在浏览威客网站、论坛等网站的时候通过正规渠道获得的真实需求。个人觉得比较感兴趣,但是由于时间或者工作的冲突自己没有去接这些项目。
一维二维码的提取、识别和产生 零、相关说明: 在“jsxyhelu.cnblogs.com/机器视觉”栏目主要介绍和图像处理和机器视觉相关的的成套的解决方案、思路和软件集。希望能够为大家在实际工作中解决具体问题提供一些帮助。
最大轮廓和投影 最近非常多的用到了最大轮廓和投影运算。回想起来,这两种算法的确是属于非常常见的基础算法。这里加以总结和提取。 最大轮廓: 前提是图像经过了灰度和阈值处理,也可以直接处理canny的结果,有些时候需要预先经过色彩域的转换。
如何做出半透明和闪光效果 一开始看到这样的效果的时候,我感觉非常酷,等到搞明白原理之后,才发现原来很酷的效果可以通过很简单的代码实现,这就更酷了。 首先,需要获得读取一些图片,最好是自然的图片,带点后现代风格的那种。
[blog]马赫效应和应对方法 //创建并且分析如何处理矩形的MachEffect Mat srcRect1(500,500,CV_8UC1); Mat srcRect2(500,500,CV_8UC1); for (int i=0;i//创建任意情况的MachEffect Mat srcRnd = imread("macheffect.
钢管识别项目1 零、相关说明: 首先进行一下相关说明。在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求、图片和其他资源,都是我在浏览威客网站、论坛等网站的时候通过正规渠道获得的真实需求。
钢管识别项目2 零、相关说明: 首先进行一下相关说明。在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求、图片和其他资源,都是我在浏览威客网站、论坛等网站的时候通过正规渠道获得的真实需求。
选择轮廓(select_shape) Halcon是一款运用广泛的图像识别和处理软件。在肤浅的接触中,它的轮廓选择算子(select_shape)给予我很深的印象。结果是往往几行代码就能够产生很好的效果: 比如要得到这样的结果 只需要 ...
压板识别项目 零、相关说明: 首先进行一下相关说明。在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求、图片和其他资源,都是我在浏览威客网站、论坛等网站的时候通过正规渠道获得的真实需求。
如何判断轮廓是否为圆? 判断一个轮廓是否为圆?这看似简单的问题,在opencv中并没有现成的函数。当我真正想运用的时候,却发现还是有许多内容在里面的。 比如这幅图片,由于瓶口是有缺陷的,造成找到的最大外轮廓不闭合。
验证码识别--type2 终于来到了彩色图像,一定有一些特点 这里的干扰项是色彩不是很鲜艳的、灰色的线条,还有单独的干扰点,根据这些特性进行去除 直接ostu的话,有的效果好,有的效果不好 本来是准备通过RGB值直接来去除的,我相信一定也有某种很好的算法,能够直接过滤掉,但是效果不好,因为对于RGB的控制没有到一个灵活运用的程度,所以还是先赚域 ycbcr的话,应该不错 这个时候就发现 出现这种情况,是因为 自动的分割,有一些比背景深,有一些比背景浅了。
傅里叶变换在机器视觉的运用 傅里叶变换在机器视觉的运用 这样一幅图像 1、是如何生成的? 2、体现了什么? 3、如何处理并用来增强原始图片数据? 一、这样的图像是如何生成的? 傅里叶变换如果用来处理图片的话,很多条件不用考虑,而使用的方法也多种多样。
验证码识别--type5 每一种验证码都是由人设计出来。在设计过程中,可能由于多个方面的原因,造成了这样或那样的可以被利用的漏洞。验证码识别,首先需要解决的问题就是发现这些漏洞--然后利用漏洞解决问题。
[wiki,blog]使用opencv自带的融合函数 [wiki,blog]使用opencv自带的融合函数 /*M/////////////////////////////////////////////////////////////////////////////////////// ...
证码识别--资料收集 一、验证码基础知识 验证码设计的目的就是区分“人”和“机器”,所以它在被设计的时候,主要的目的就是防止被采用就是自动识别出来。所以作为破解者来说,一开始就是处于劣势地位的。
实现gabor filter的滤波 图像纹理对于航空遥感图片、织物图案、复杂自然风景和动植物都适合。这里我采用遥感图片、织物图案和钢铁表面来做,并和canny图片进行一定的对比。 遥感图像 编织物 相比较canny算法(或者自适应canny)来说,gabor的确在全局的特征显示上面有所优势,特别是在明暗变化的地方显示较好。
证码识别--type1 从最简单的开始。主要是研究通用的方法、整理通用的框架和思路,最后整理超越之上的价值。
电影院观影人数统计 一、基本知识和背景 图像识别和监控相配合,能够帮助使用者获得监控内容的定量信息。通过对所获得的数据的统计分析,就能够得到超出图像本身的价值,并且反馈现实,获得真正的利益。
基本形态学算法 为什么要做基本形态学算法的研究和实现?是因为形态学是一个非常有力,应用 广泛的工具,但同时也是研究不是很清楚的工具。往往一个恰到好处的变换,就能够省下许多的劳动。对此的分类和研究就显得非常有必要,而相关代码的积累,也很有价值。
基于卷积神经网络的以图搜图算法实现 如果用这个名称去搜索论文,一定有不少。为什么了,因为从原理上来看,卷积神经网络就非常适合找图片的相似的地方。
CPU和GPU实现julia 主要目的是通过对比,学习研究如何编写CUDA程序。julia的算法还是有一定难度的,但不是重点。由于GPU实现了也是做图像识别程序,所以缺省的就是和OPENCV结合起来。
基于SURF特征的图像与视频拼接技术的研究和实现(一) 一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的《基于SURF特征的图像与视频拼接技术的研究和实现》,条理清晰、内容完整、实现的技术具有市场价值。
验证码识别--type7 一、干扰分析 有黑色边框,然后点干扰,线干扰 去边框 去点干扰 变成这样的结果,方便运算吗?也可以多种方式联合起来运算的。我相信在很多情况下,都可能会遇到类似的结果。
机器视觉项目基础框架 【注意,这个框架已经过时,最新的内容请查看gomfctemplate】 一、背景 虽然OPENCV是可以在多平台下面运行,并且通过封包(DLL)的形式,可以被多种程序所调用,但是在windows平台下面,OPENCV和MFC程序一起使用还是最常见,也是功能最强大的。
机器学习研究项目--以机器视觉工程师的视角(MLP篇) 一、机器学习的基本概念和区分; 机器学习的概念已经出现很长时间了,它本身也形成复杂的学科分类。
集装箱体本身的特征有三,一是图片中的需要识别的文字比较大;二是需要识别的文字色彩鲜艳;三是文字周围的干扰比较多,所以直接识别,即使是使用finereader这种软件都无法完成。 所以,第一步需要做的就是更换图片区域,强调联通。
基于海康监控的图像识别设计 一、基本知识和背景 目前,安防行业正从网络化向智能化升级;从简单的视频获取、图像截获向内容分析、自动跟踪进化。借助监控摄像头,进行图像识别或机器视觉设计的需求,变得越来越强烈。
opencv透视变换 实现透视变换 目标: 在这篇教程中你将学到: 1、如何进行透视变化 2、如何生存透视变换矩阵 理论: 什么是透视变换: 1、透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。
对显微镜图像的初步研究 完成一个机器视觉的项目,首先需要开发者能够理解图像、剖析出特征、提出初步的思路。对于三幅显微镜图片,原始的要求是能够以75%的成功率识别出三类物体。先看图像 一、图像主观体验 1)从总体颜色上来看,发现三幅图像的主要颜色不统一(图1偏紫,图3偏绿),应该是由切片的不同材质造成的。
一、设定bin的初始位置:比如我的电脑 D:\安装程序\opencv\build\x86\vc10\bin H:\生产力工具\opencv\build\x86\vc10\binD:\安装程序\opencv\build\include H:\生产力工具\ope...
ocr是一个宽泛的概念。市场上面ocr将一直是一个不断发展、需求强烈的方向。 我认为,从难度上区分,中文ocr难于英文ocr;手写ocr难于印刷ocr。所以两两组合,中文手写体最难(比如毛体,有一些人都识别不了);而英文(数字)印刷体ocr最简单,对于最简单的东西,我认为就可以直接使用tesseract,它本身就是集成了对英文(数字)的识别。