含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

前言今天我們一起來使用LabVIEW AI視覺工具包快速實現圖像的濾波與增強;圖像灰度處理;閾值處理與設定;二值化處理;邊緣提取與特征提取等基本操作 。工具包的安裝與下載方法可見之前的博客 。
一、圖像濾波與增強有時候我們想要處理的圖像中噪音太多,影響到我們的識別判斷,我們就需要對圖像進行模糊處理,使圖像變得平滑 。而LabVIEW AI視覺工具包提供給我們filter 2d算子可以對圖像進行2D卷積,我們可以使用自定義的卷積核來對圖像進行卷積操作 。該算子輸入輸出如下所示:

含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
圖像內核是一個小矩陣,在Photoshop或Gimp中找到的效果都可以實現,例如模糊 , 銳化,輪廓或浮雕 。它們還用于機器學習中的“特征提取”,這是一種用于確定圖像最重要部分的技術 。在這種情況下,該過程更普遍地稱為“卷積”,調用filter 2d算子配合不同卷積核實現圖像濾波和增強的程序如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
在前面板選擇不同的卷積核可以實現不同的效果:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
不同卷積核效果如下:
1.模糊(blur)
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
2.索貝爾(sobel),僅顯示特定方向上相鄰像素值的差異,從上往下,從暗處到亮處增強顯示
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
3.浮雕(emboss),通過強調像素的差在給定方向的Givens深度的錯覺,從左上往右下,從暗處到亮處增強顯示:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
4.大綱(outline),一個輪廓內核(也稱為“邊緣”的內核)用于突出顯示的像素值大的差異,輪廓的增強顯示
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
5.銳化(sharpen),該銳化內核強調在相鄰的像素值的差異 。這使圖像看起來更生動
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
6.拉普拉斯算子(laplacian operator),可以用于邊緣檢測,對于檢測圖像中的模糊也非常有用 。
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
7.分身(identity)就是原圖
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
二、圖像灰度處理之前我們說過,LabVIEW默認使用BGR讀取圖像,所以我們將圖片轉化為灰度圖使用cvtColor算子 , 參數選擇:BGR2GRAY,如下圖所示:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
程序結果如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
我們可以看到程序中使用了calHist用以繪制圖片通道直方圖,并以波形圖顯示出來;calHist函數參數具體如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
波形圖顯示控件:前面板右鍵-->Graph-->Waveform Graph;
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
直接讀取原圖顯示程序如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
程序結果如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
三、閾值處理與設定如下程序通過設定閾值 , 實現將其他顏色全部過濾,只保留紅藍綠三種顏色:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
程序結果如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
【含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用】threshold算子參數分析:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖

含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
四、二值化處理將圖片先轉化為灰度圖,再進行二值化 , 程序如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
設置閾值和最大值,二值化之后的程序結果如下:
含源碼 手把手教你使用LabVIEW人工智能視覺工具包快速實現傳統Opencv算子的調用

文章插圖
五、邊緣提取如下程序為使用findContours實現邊緣提?。?

推薦閱讀