halcon教程/ 傅里叶变换/图像特征提取

一、工作流程演示

为了更好的理解视觉,先不讲原理,先演示一遍,让大家知道是怎么个回事。
首先,通过USB将购买的相机连接到电脑,装上驱动,打开驱动,界面如下:


设置好驱动,打开halcon:

后面的就是一些简单操作了。

halcon常见算子

Blob分析:找到你所感兴趣的像素,比如你要找灰度200的像素,Blob就能把所有200的像素给提取出来

二、瓶盖提取流程演示

  1. 安装好相机、驱动,打开halcon,新建
  2. 采集图像。助手 - Image Acquisition - 弹出新窗口 - 资源 - 自动检测接口 - 等待检测成功,点击 连接 - 实时 - 颜色空间(可改)

常见视觉处理项目流程:

    1. 采集图像
    1. 预处理(为了后面的算法提供比较好的图像环境,比如 中值滤波,均值滤波,高斯滤波是常用的数据处理;频域里的高通滤波,带通滤波;Scale_image灰度处理;gra_range_image等)
    1. 特征提取(SIFT和SURF)或形态学(膨胀腐蚀开运算闭运算)
    1. UI显示(或AI训练学习)

三、形态学

形态学常见算法:膨胀、腐蚀、开运算(先腐蚀后膨胀)、闭运算(先膨胀后腐蚀)
如果想减少或断开像素,用腐蚀和开运算,如果想增加或连接像素,用膨胀和闭运算。




数字图像傅里叶变换的物理意义及简单应用

通过前面的博文已经知道傅里叶变换是得到信号在频域的分布,数字图像也是一种信号,对它进行傅里叶变换得到的也是它的频谱数据。对于数字图像这种离散的信号,频率大小表示信号变化的剧烈程度或者说是信号变化的快慢。频率越大,变化越剧烈,频率越小,信号越平缓,对应到图像中,高频信号往往是图像中的边缘信号和噪声信号,而低频信号包含图像变化频繁的图像轮廓及背景等信号。

需要说明的是,傅里叶变换得到的频谱图上的点与原图像上的点之间不存在一一对应的关系。

频域数据的应用

  1. 图像去噪
    根据上面说到的关系,我们可以根据需要获得在频域对图像进行处理,比如在需要除去图像中的噪声时,我们可以设计一个低通滤波器,去掉图像中的高频噪声,但是往往也会抑制图像的边缘信号,这就是造成图像模糊的原因。以均值滤波为例,用均值模板与图像做卷积,大家都知道,在空间域做卷积,相当于在频域做乘积,而均值模板在频域是没有高频信号的,只有一个常量的分量,所以均值模板是对图像局部做低通滤波。除此之外,常见的高斯滤波也是一种低通滤波器,因为高斯函数经过傅里叶变换后,在频域的分布依然服从高斯分布,如下图所示。所以它对高频信号有很好的滤除效果。
高斯函数在频域的分布图像

2. 图像增强及锐化

图像增强需要增强图像的细节,而图像的细节往往就是图像中高频的部分,所以增强图像中的高频信号能够达到图像增强的目的。

同样的图像锐化的目的是使模糊的图像变得更加清晰,其主要方式是增强图像的边缘部分,其实就是增强图像中灰度变化剧烈的部分,所以通过增强图像中的高频信号能够增强图像边缘,从而达到图像锐化的目的。从这里可以看出,可以通过提取图像中的高频信号来得到图像的边缘和纹理信息。

3. 其他基于频谱和相位谱的操作等

下面我们通过代码来看一下是否真如我们想想的一样

clc;
clear all;
I=imread('lena.jpg');
I=rgb2gray(I);

%I=imnoise(I, 'gaussian', 0, 0.01);    %%给图像添加高斯噪声;
subplot(231),imshow(I);
title('原图像');

s=fftshift(fft2(I));                  %%低频部分移动到中心
% subplot(234),imshow(uint8(abs(s)),[]);
% title('图像傅里叶变换所得频谱');

subplot(234),imshow(log(abs(s)),[]);
title('图像傅里叶变换取对数所得频谱');



[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);

%%%%%%%低通滤波
d=min(a0,b0)/12;    %滤波的范围,以频谱图上的欧氏距离为依据
Lp=zeros(a,b);

for i=1:a          %设置低通滤波
     for j=1:b
         distance=sqrt((i-a0)^2+(j-b0)^2);
         if distance<=d
             h=1;
         else
             h=0;
         end
         Lp(i,j)=h*s(i,j);
     end
end

subplot(235),imshow(log(abs(Lp)),[]);
title('低通滤波频谱');

LPJ=uint8(real(ifft2(ifftshift(Lp))));
subplot(232),imshow(LPJ);
title('低通滤波所得图像');

%%%%%%%高通滤波
d1=min(a0,b0)/12;    %高通滤波的范围,以频谱图上的欧氏距离为依据
Hp=zeros(a,b);

for i=1:a          %%设置高通滤波
     for j=1:b
         distance=sqrt((i-a0)^2+(j-b0)^2);
         if distance>d1
             h=1;
         else
             h=0;
         end
         Hp(i,j)=h*s(i,j);
     end
end

subplot(236),imshow(log(abs(Hp)),[]);
title('高通滤波频谱');

HPJ=uint8(real(ifft2(ifftshift(Hp))));
subplot(233),imshow(HPJ);
title('高通滤波所得图像');

new=Hp.*1.5+Lp.*1;
NewIm=uint8(real(ifft2(ifftshift(new))));
figure,imshow(NewIm);
title('增强高频信号所得图像');

结果分析

从上面的结果可以看出,低通滤波会让图像变得模糊,可以对图像进行模糊处理,滤除图像的噪声,高通滤波获得了图像的边缘和纹理信息。此外,通过增强图像的高频信号,可以增强图像的对比度,因为图像中的高频信号主要是出现在边缘及噪声这样的灰度出现跃变处的区域。

从频谱图上可以看出,当将频谱移频到原点以后,图像中心比较亮。在频谱图中,一个点的亮暗主要与包含这个频率的数目有关,也就是说在空间域中包含这种频率的点越多,频谱图中对应的频率的位置越亮。而经过频移后,频率为0的部分,也就是傅里叶变换所得到的常量分量在图像中心,由内往外扩散,点所代表的频率越来越高。可以从上面的结果中看出,只取核心的小范围内的低频信号再将其转换回到时域空间,已经能够在一定程度是看到图像的基本轮廓信息,这说明了图像中的“能量”主要集中在低频部分。

实际上,为了方便理解,可以把图像的二维傅里叶变换得到的频谱图看作图像的梯度分布图(两幅图像中的点并不是一一对应),频谱图中的某一个点所表征的是空间域中某一个点与周围点的灰度差异性,灰度差异越大,则频率越大。当然时域中灰度变化剧烈的区域也包含了低频信号,因为低频信号是构成图像信息的基础。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • #阿泰母亲节 泰国的母亲节是王后的生日当天,充斥着满满的泰国文化特色。母亲们会在当天抵达学校,和孩子们一起给僧人送...
    Becue阅读 362评论 0 0
  • 我是一个长得非常帅气的男生。长着一双圆溜溜的对一切都充满着好奇的眼睛,又细又长的睫毛,一双听觉灵敏的圆圆的...
    梳子_caf3阅读 264评论 0 2
  • 在react中,处理事件响应的方式主要有: (1).使用匿名函数; (2).使用组件的方法; (3).使用属性初始...
    打代码的小鱼姑娘阅读 645评论 0 0
  • 我出生在七月的一个雨天。听说,雨天出生的孩子,生命中总是少了一缕阳光。 这听起来太过宿命,但就像笼罩在头顶上空一个...
    思无邪的世界阅读 246评论 6 18
  • 桃源是湖红工夫茶的发源地之一,经近200年来历代茶人智慧的沉淀,形成了独有的品质特征:花蜜香,甘鲜味。 桃...
    茶掌柜周艮平阅读 534评论 0 0