前言
今天我們一起來使用LabVIEW AI視覺工具包快速實(shí)現(xiàn)圖像的濾波與增強(qiáng);圖像灰度處理;閾值處理與設(shè)定;二值化處理;邊緣提取與特征提取等基本操作。工具包的安裝與下載方法可見之前的兩篇博客。
一、圖像濾波與增強(qiáng)
有時(shí)候我們想要處理的圖像中噪音太多,影響到我們的識(shí)別判斷,我們就需要對圖像進(jìn)行模糊處理,使圖像變得平滑。而LabVIEW AI視覺工具包提供給我們filter 2d算子可以對圖像進(jìn)行2D卷積,我們可以使用自定義的卷積核來對圖像進(jìn)行卷積操作。該算子輸入輸出如下所示:
圖像內(nèi)核是一個(gè)小矩陣,在Photoshop或Gimp中找到的效果都可以實(shí)現(xiàn),例如 模糊,銳化,輪廓或浮雕 。它們還用于機(jī)器學(xué)習(xí)中的“特征提取”,這是一種用于確定圖像最重要部分的技術(shù)。在這種情況下,該過程更普遍地稱為“卷積”,調(diào)用filter 2d算子配合不同卷積核實(shí)現(xiàn)圖像濾波和增強(qiáng)的程序如下:
在前面板選擇不同的卷積核可以實(shí)現(xiàn)不同的效果:
不同卷積核效果如下:
1.模糊(blur)
2.索貝爾(sobel),僅顯示特定方向上相鄰像素值的差異,從上往下,從暗處到亮處增強(qiáng)顯示
3.浮雕(emboss),通過強(qiáng)調(diào)像素的差在給定方向的Givens深度的錯(cuò)覺,從左上往右下,從暗處到亮處增強(qiáng)顯示:
4.大綱(outline),一個(gè)輪廓內(nèi)核(也稱為“邊緣”的內(nèi)核)用于突出顯示的像素值大的差異,輪廓的增強(qiáng)顯示
5.銳化(sharpen),該銳化內(nèi)核強(qiáng)調(diào)在相鄰的像素值的差異。這使圖像看起來更生動(dòng)
6.拉普拉斯算子(laplacian operator),可以用于邊緣檢測,對于檢測圖像中的模糊也非常有用。
7.分身(identity)就是原圖
二、圖像灰度處理
之前我們說過,LabVIEW默認(rèn)使用BGR讀取圖像,所以我們將圖片轉(zhuǎn)化為灰度圖使用 cvtColor算子 ,參數(shù)選擇:BGR2GRAY,如下圖所示:
程序結(jié)果如下:
我們可以看到程序中使用了calHist用以繪制圖片通道直方圖,并以波形圖顯示出來;calHist函數(shù)參數(shù)具體如下:
波形圖顯示控件:前面板右鍵-->Graph-->Waveform Graph;
直接讀取原圖顯示程序如下:
程序結(jié)果如下:
三、閾值處理與設(shè)定
如下程序通過設(shè)定閾值,實(shí)現(xiàn)將其他顏色全部過濾,只保留紅藍(lán)綠三種顏色:
程序結(jié)果如下:
threshold算子參數(shù)分析:
四、二值化處理
將圖片先轉(zhuǎn)化為灰度圖,再進(jìn)行二值化,程序如下:
設(shè)置閾值和最大值,二值化之后的程序結(jié)果如下:
五、邊緣提取
如下程序?yàn)槭褂胒indContours實(shí)現(xiàn)邊緣提?。?/p>
程序?qū)崿F(xiàn)效果如下:
六、角點(diǎn)檢測
1.使用cornerMinEigenVal算子
角點(diǎn)檢測程序如下:
程序結(jié)果如下:
2.使用cornerHarris算子
角點(diǎn)檢測程序如下:
程序結(jié)果如下:
七、源碼下載
鏈接:https://pan.baidu.com/s/1Ua00IwcLGFoFtXAWKDGW_w
提取碼:8888
總結(jié)
具體源碼詳細(xì)請見下載鏈接。
-
LabVIEW
+關(guān)注
關(guān)注
2002文章
3670瀏覽量
335744 -
人工智能
+關(guān)注
關(guān)注
1806文章
49008瀏覽量
249289 -
OpenCV
+關(guān)注
關(guān)注
32文章
642瀏覽量
42860 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122783 -
labview教程
+關(guān)注
關(guān)注
15文章
34瀏覽量
7548
發(fā)布評論請先 登錄
評論