一、工作流程演示
為了更好的理解視覺,先不講原理,先演示一遍,讓大家知道是怎么個(gè)回事。
首先,通過USB將購買的相機(jī)連接到電腦,裝上驅(qū)動(dòng),打開驅(qū)動(dòng),界面如下:

設(shè)置好驅(qū)動(dòng),打開halcon:

后面的就是一些簡單操作了。

Blob分析:找到你所感興趣的像素,比如你要找灰度200的像素,Blob就能把所有200的像素給提取出來
二、瓶蓋提取流程演示
- 安裝好相機(jī)、驅(qū)動(dòng),打開halcon,新建
- 采集圖像。助手 - Image Acquisition - 彈出新窗口 - 資源 - 自動(dòng)檢測接口 - 等待檢測成功,點(diǎn)擊 連接 - 實(shí)時(shí) - 顏色空間(可改)
常見視覺處理項(xiàng)目流程:
- 采集圖像
- 預(yù)處理(為了后面的算法提供比較好的圖像環(huán)境,比如 中值濾波,均值濾波,高斯濾波是常用的數(shù)據(jù)處理;頻域里的高通濾波,帶通濾波;Scale_image灰度處理;gra_range_image等)
- 特征提?。⊿IFT和SURF)或形態(tài)學(xué)(膨脹腐蝕開運(yùn)算閉運(yùn)算)
- UI顯示(或AI訓(xùn)練學(xué)習(xí))
三、形態(tài)學(xué)
形態(tài)學(xué)常見算法:膨脹、腐蝕、開運(yùn)算(先腐蝕后膨脹)、閉運(yùn)算(先膨脹后腐蝕)
如果想減少或斷開像素,用腐蝕和開運(yùn)算,如果想增加或連接像素,用膨脹和閉運(yùn)算。
數(shù)字圖像傅里葉變換的物理意義及簡單應(yīng)用
通過前面的博文已經(jīng)知道傅里葉變換是得到信號(hào)在頻域的分布,數(shù)字圖像也是一種信號(hào),對它進(jìn)行傅里葉變換得到的也是它的頻譜數(shù)據(jù)。對于數(shù)字圖像這種離散的信號(hào),頻率大小表示信號(hào)變化的劇烈程度或者說是信號(hào)變化的快慢。頻率越大,變化越劇烈,頻率越小,信號(hào)越平緩,對應(yīng)到圖像中,高頻信號(hào)往往是圖像中的邊緣信號(hào)和噪聲信號(hào),而低頻信號(hào)包含圖像變化頻繁的圖像輪廓及背景等信號(hào)。
需要說明的是,傅里葉變換得到的頻譜圖上的點(diǎn)與原圖像上的點(diǎn)之間不存在一一對應(yīng)的關(guān)系。
頻域數(shù)據(jù)的應(yīng)用
- 圖像去噪
根據(jù)上面說到的關(guān)系,我們可以根據(jù)需要獲得在頻域?qū)D像進(jìn)行處理,比如在需要除去圖像中的噪聲時(shí),我們可以設(shè)計(jì)一個(gè)低通濾波器,去掉圖像中的高頻噪聲,但是往往也會(huì)抑制圖像的邊緣信號(hào),這就是造成圖像模糊的原因。以均值濾波為例,用均值模板與圖像做卷積,大家都知道,在空間域做卷積,相當(dāng)于在頻域做乘積,而均值模板在頻域是沒有高頻信號(hào)的,只有一個(gè)常量的分量,所以均值模板是對圖像局部做低通濾波。除此之外,常見的高斯濾波也是一種低通濾波器,因?yàn)楦咚购瘮?shù)經(jīng)過傅里葉變換后,在頻域的分布依然服從高斯分布,如下圖所示。所以它對高頻信號(hào)有很好的濾除效果。

2. 圖像增強(qiáng)及銳化
圖像增強(qiáng)需要增強(qiáng)圖像的細(xì)節(jié),而圖像的細(xì)節(jié)往往就是圖像中高頻的部分,所以增強(qiáng)圖像中的高頻信號(hào)能夠達(dá)到圖像增強(qiáng)的目的。
同樣的圖像銳化的目的是使模糊的圖像變得更加清晰,其主要方式是增強(qiáng)圖像的邊緣部分,其實(shí)就是增強(qiáng)圖像中灰度變化劇烈的部分,所以通過增強(qiáng)圖像中的高頻信號(hào)能夠增強(qiáng)圖像邊緣,從而達(dá)到圖像銳化的目的。從這里可以看出,可以通過提取圖像中的高頻信號(hào)來得到圖像的邊緣和紋理信息。
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)); %%低頻部分移動(dòng)到中心
% subplot(234),imshow(uint8(abs(s)),[]);
% title('圖像傅里葉變換所得頻譜');
subplot(234),imshow(log(abs(s)),[]);
title('圖像傅里葉變換取對數(shù)所得頻譜');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
%%%%%%%低通濾波
d=min(a0,b0)/12; %濾波的范圍,以頻譜圖上的歐氏距離為依據(jù)
Lp=zeros(a,b);
for i=1:a %設(shè)置低通濾波
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; %高通濾波的范圍,以頻譜圖上的歐氏距離為依據(jù)
Hp=zeros(a,b);
for i=1:a %%設(shè)置高通濾波
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('增強(qiáng)高頻信號(hào)所得圖像');




結(jié)果分析
從上面的結(jié)果可以看出,低通濾波會(huì)讓圖像變得模糊,可以對圖像進(jìn)行模糊處理,濾除圖像的噪聲,高通濾波獲得了圖像的邊緣和紋理信息。此外,通過增強(qiáng)圖像的高頻信號(hào),可以增強(qiáng)圖像的對比度,因?yàn)閳D像中的高頻信號(hào)主要是出現(xiàn)在邊緣及噪聲這樣的灰度出現(xiàn)躍變處的區(qū)域。
從頻譜圖上可以看出,當(dāng)將頻譜移頻到原點(diǎn)以后,圖像中心比較亮。在頻譜圖中,一個(gè)點(diǎn)的亮暗主要與包含這個(gè)頻率的數(shù)目有關(guān),也就是說在空間域中包含這種頻率的點(diǎn)越多,頻譜圖中對應(yīng)的頻率的位置越亮。而經(jīng)過頻移后,頻率為0的部分,也就是傅里葉變換所得到的常量分量在圖像中心,由內(nèi)往外擴(kuò)散,點(diǎn)所代表的頻率越來越高??梢詮纳厦娴慕Y(jié)果中看出,只取核心的小范圍內(nèi)的低頻信號(hào)再將其轉(zhuǎn)換回到時(shí)域空間,已經(jīng)能夠在一定程度是看到圖像的基本輪廓信息,這說明了圖像中的“能量”主要集中在低頻部分。
實(shí)際上,為了方便理解,可以把圖像的二維傅里葉變換得到的頻譜圖看作圖像的梯度分布圖(兩幅圖像中的點(diǎn)并不是一一對應(yīng)),頻譜圖中的某一個(gè)點(diǎn)所表征的是空間域中某一個(gè)點(diǎn)與周圍點(diǎn)的灰度差異性,灰度差異越大,則頻率越大。當(dāng)然時(shí)域中灰度變化劇烈的區(qū)域也包含了低頻信號(hào),因?yàn)榈皖l信號(hào)是構(gòu)成圖像信息的基礎(chǔ)。