2018-11-23 20:08:31
如果不了解在图像滤波中如何应用傅里叶变换和频率域的基本知识,要彻底理解这一领域也是不太可能。二维离散傅里叶变换的一些性质1、空间和频率间隔的关系假设对连续函数f(t,z)取样生成了一副数字图像f(x,y),它由分别在t和z方向所取的MxN个样点组成。令△T和△Z表示样本间的间隔。那么相应离散频率域变量间的间隔分别由给出。频率域样本间的间隔与空间样本间的间距和样本数成反比。2、平移和旋转用指数项乘以...
2018-11-23 17:07:43
图像滤波增强处理实质上就是运用滤波技术来增强图像的某些空间频率特征,以改善地物目标与领域或背景之间的灰度反差。遥感系统成像过程中可能产生的”模糊”作用,常使遥感图像上某些用户感兴趣的线性形迹、纹理与地物边界等信息显示得不够清晰,不易识别。需要通过采用领域处理方法来分析、比较和调整像元与其周围相邻像元间的对比度关系,图像才能得到增加,也就是说需要采用滤波增加技术处理。 一,空域滤波:使用空...
2018-11-23 16:47:59
原文出处: 韩昊 12345678910作 者:韩 昊知 乎:Heinrich微 博:@花生油工人知乎专栏:与时间无关的故事 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。 转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。 ——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章————我保证这篇文章和你以前看过的所有文章都不同,这是...
2018-11-23 16:31:10
直方图处理灰度级范围(0,L-1)的数字图像的直方图是离散函数h(rk)=nk, rk表示第k级灰度值,nk是图像中灰度为rk的像素个数。在实践中常用MN表示的图像像素总数除它的每个分量来表示归一化直方图。归一化的直方图由p(rk)=nk/MN给出,p(rk)即灰度级rk在图像中出现的概率的一个估计。所有分量和为1。图像的直观感觉暗图像,直方图分量集中在灰度级的低端。亮图像,直方图分量集中在灰度...
2018-11-23 16:12:50
接触机器视觉的东西到现在有好长一段时间了,从以前折腾opencv到现在折腾halcon,这么浑浑噩噩的一年折腾,也没折腾出什么深刻的认识。回过头来想想,自己的学习过程完全是建造空中楼阁。提到的opencv及halcon的大部分资料都在介绍函数,算子等。因此决定,从基础做起,以数字图像处理这本书来理解halcon里的算子的想法的学习方式孕育而生。前提以8bit灰度图作为研究对象(L=256),输入图...
2018-11-22 17:33:27
如果你的照片看上去灰蒙蒙的,缺少生机,那么hsv拉伸也许可以帮你的忙。hsv拉伸是一种可以提高图像鲜艳程度的图像增强方法,它能够让图像的颜色更加鲜活、艳丽,而且它的处理结果看上去很自然,比如源图中较暗的红色会变的鲜红,而不会像拉伸对比度那样把图像弄的难看失真,暗红色变的发紫发黑。来个例子:其基本原理如下:1、 将源图像的(rgb)颜色空间映射到(hsv ),什么是HSV?2、 对图像的s和v通道进...
2018-11-22 16:53:36
本例子利用EmguCV来做颜色识别,以实现报警。因为本例子使用了HSV颜色空间的知识,所以在介绍这个例子之前,摘抄一段网上介绍HSV颜色空间的知识。一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。H: 0 — 180S: 0 — 255V: 0 — 255此处把部分红色...
2018-11-22 15:26:14
photoshop8是勇哥经常使用的版本, 它的好处是速度飞快, 而且新版本增强了什么功能, 一不愿意再去学习新版了, 二则新增功能估计也跟搞工业视觉关系不大了. 因此无论在什么系统上面,我都安装的是photoshop8.这个版本在win10 64位系统下面会出现启动界面卡死在"正在读取文本全球资源" 这个启动界面上.网上的解决方法是删除设置目录下的文件.但是对于win10的电...
2018-11-18 14:48:55
原图:halcon程序:read_image (Image, 'C:/Users/Administrator/Desktop/划痕+油污+瑕疵的检测/划痕、油污、瑕疵/表面划痕/Image.bmp')
dev_close_window()
get_image_size(Image, Width, Height)
dev_open_window(0, 0, Width, H...
2018-11-17 20:30:46
Retinex图像增强算法前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解。Retinex理论Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线,还和其周围的颜色和亮度有关。Retinex这个词是由视网膜...
2018-11-17 20:06:57
在我们编写halcon程序中可能常会用到图像相减算子sub_image,例如在做高斯高通滤波的时候,最后的结果是要用原图像减去滤波后的图像才能得到锐化图像。该算子的参数形式如下:sub_image(ImageMinuend , ImageSubtrahend : ImageSub : Mult , Add :)第一个参数是被减图像,第二个参数是减数图像,第三个参数是结果图像,第四个参数是乘数因子,...
2018-11-17 19:38:18
1、变焦和对焦有什么区别?变焦就是改变镜头的焦距(准确说是像距),以改变拍摄的视角,也就是通常所说的把被摄体拉近或推远。例如18-55mm和70-200mm镜头就是典型的变焦镜头。焦距越长,视角越窄。对焦通常指调整镜片组和底片(传感器平面)之间的距离,从而使被摄物在CCD/CMOS上成的像清晰。我们通常说的“调焦”一般指“对焦”。有些人认为定焦镜头不能调焦的说法是错误的。 2、为什么镜头的最大光圈...
2018-11-17 19:13:13
有经验的机器视觉工程师都会认可这样一句话:机器视觉项目的成败在于能否得到一张打光优秀的图片。如果采集到的图片本身“质量”很差,那么接来下的图像处理工作就会困难重重。 由于项目的需求以及光源厂商的努力,目前机器视觉光源的类型可以说十分丰富,例如条光、背光、平行背光、同轴光、点光、隧道光、碗光、环形光、球形光、条形聚光等。根据光的波长和颜色,又可以分为X光、蓝光、红光、白光、红外光等。 网上关于光源选...
2018-11-17 17:30:41
引言openCV是因特尔的一个开源的视觉库,里面几乎包含了所有的图像处理的经典算法,并且采用C和少量的C++编写,运行效率很高,对于做图像处理这方面工作的,认识opencv是必须的工作。不过opencv有个很大的不足,这在于它几乎没有提供gui这方面接口,很难满足目前应用程序开发的需要,而万恶的MFC框架丑陋的界面也成为了我的噩梦,MFC与opencv和界面优化几乎让我在图像处理这一块儿无法动弹。...
2018-11-17 17:24:24
halcon的tuple算子功能总结...
2018-11-17 17:21:35
基于形状的模板查找算子:find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score) MaxOverlap:意思是允许的最大重叠区域。 那么我们想问,...
2018-11-17 17:08:45
Halcon中阈值二值化的算子众多,通常用得最多的有threshold、binary_threshold、dyn_threshold等。 threshold是最简单的阈值分割算子,理解最为简单;binary_threshold是自动阈值算子,它可以自动选出暗(dark)的区域,或者自动选出亮(light)的区域,理解起来也没有难度。 动态阈值算子dyn_threshold理解起来稍微复杂一点,使用...
2018-11-17 16:58:01
例一:毛刺在往外凸的面上策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算之后的区域,得到毛刺部分的区域。read_image (Tu, 'C:/Users/xiahui/Desktop/tu.jpg')
binary_threshold (Tu, Region, 'max_separability', 'dark',...
2018-11-17 16:53:07
以下图为例:比如我想把面积第2小的那个“小正方形”选择出来,算法代码如下:read_image (Yuan, 'C:/Users/happy xia/Desktop/yuan.png')
binary_threshold (Yuan, Region, 'max_separability', 'dark', UsedThreshold)
conne...
2018-11-17 16:51:09
如下图:...
2018-11-17 16:45:15
connection直译为“连接”。其实它的功能不是连接,它的功能是确定区域之间的连接关系,如果简单粗暴地解释的话,可以认为:connection的意思是“打散”,将不连接的区域打散成一个一个的区域。 一、difference操作 1、用connection之后的region集合减去单一region 以下为待处理的图:read_image (Right, '未标题-1.jpg')...
2018-11-17 16:42:18
算子sort_contours_xld算子有5种排序方式,即: 'upper_left':The position is determined by the upper left corner of the surrounding rectangle.'upper_right':The position is determined by the upper righ...
2018-11-17 16:27:28
在Halcon的rft变换中,我们经常可以看到这样的算子组合:rft_generic (Image, ImageFFT2, 'to_freq', 'none', 'complex', Width) convol_fft (ImageFFT2, ImageFilter, ImageConvol2)rft_generic (ImageConvol2, I...
2018-11-17 16:18:42
有时候通常需要简单的拼图,不涉及图像融合之类的,仅仅是简单的平移将多张图拼接成一张图。tile_images和tile_images_offset就是用于简单拼图的2个算子。 谈到拼图,肯定有以下问题要明确:1、将多少张图拼起来?由于是多张图,这需要一个元组来存储多张图片的集合。2、是横向拼图,还是纵向拼图?这涉及拼图的方向。3、是一张挨着一张无缝拼接吗?能不能做“有缝”的自由拼接?这涉及拼接偏移...
2018-11-17 16:13:27
线扫相机的原理:线扫相机一般一次只拍摄一条线(线宽通常是1个像素),在机构运动的过程中,线扫相机不断地拍摄线,于是“聚线成面”,这就是线扫相机成像的原理。 线扫相机的原理决定了,它所拍摄的物体必须要运动。机构运动的话,就存在机构的速度是否和线扫相机采集的速度匹配的问题。将对机构运动速度的要求进行拆分的话,其实就是如下两点:① 运动速度必须与线扫相机的工作行频(即采集速度)相匹配。② 机构的运动速度...
2018-11-17 13:59:21
二维仿射变换,顾名思义就是在二维平面内,对对象进行平移、旋转、缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的)。 Halcon中进行仿射变换的常见步骤如下:① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.0]);② 在初始化矩阵的基础上,使用hom_mat2d_translate(平移)、hom_mat2...
2018-11-17 12:44:22
我们知道,Halcon中的坐标系的原点在左上角,而一般二维平面坐标系的原点在左下角。那么Halcon中坐标系和一般的二维坐标系有什么区别呢?我通过下面这个例子来分析。gen_image_const (Image, 'byte', 512, 512)
dev_set_draw ('margin')
*点1
gen_circle (Circle1, 10,...
2018-11-17 12:27:31
例图:read_image (Image, 'C:/Users/Administrator/Desktop/1.png')
threshold (Image, Regions, 0, 112)
skeleton(Regions,TriangleSkeleton)
gen_contours_skeleton_xld(TriangleSkeleton,Triangl...
2018-11-17 12:21:49
Halcon中如何通过灰度线性映射增强图片对比度呢?不急,我先讲点其他的。如果你用过Photoshop,那么想必对增强图像的对比度很熟悉。在Photoshop中,我们对下面这张图执行“色阶”调整:执行“色阶”调整:可以观察到图片的对比度明显增强。(白的更白,黑的更黑了)它的原理是这样的:将原图中灰度值小于55的点全部强制置为0,将灰度值高于140的点强制置为255,并且将55~140之间的色阶强行...
2018-11-17 12:19:50
以Halcon为例,一般解码的步骤为:创建解码模型——设置解码参数——执行解码——清除模型回收内存。如下所示:create_bar_code_model ([], [], BarCodeHandle)
set_bar_code_param (BarCodeHandle, 'num_scanlines', 30)
find_bar_code (Image, SymbolRegio...