一、簡介
HDevelop 是一款收費的圖像處理/計算機視覺嵌入式開發工具,提供大量圖像處理相關演算法庫、方便易用的可視化界面、可以轉化為各種嵌入式平台相應代碼的高級圖像處理腳本語言和可以在 Ubuntu、Windows 和 macOS 等主流操作系統下使用。而且 HDevelop 也適合初學者學習機器視覺,因為它非常方便使用、有良好的文檔說明、有互動式學習例子,既可以做多個圖像處理/計算機視覺項目,也可以用來學習。
二、使用 HDevelop 實現邊緣檢測
邊緣在圖像處理中屬於常見的識別特徵,通常不同邊緣檢測方法會基於不同重要的特性來執行。這裡我們用 Canny 邊緣檢測演算法,並在 HDevelop 中實現,以下是 Canny 邊緣檢測演算法的流程:
1. 對原始圖像設定一個高斯核進行模糊化,從而去除雜訊. 2. 使用類似於 Sobel 運算元的方法來找到像素點梯度以及方向. 3. 基於之前的鄰域,來修剪當前像素點的邊緣. 4. 只保留滿足最大值或超過高閾值的像素,不設置的話就是保留低於低閾值和高於高閾值之間的像素. 5. 基於連接了兩個高強度邊緣的像素來進行更加精確的定位(改進演算法).
對應 HDevelop 代碼如下:
read_image(Image, "monkey.png") rgb3_to_gray(Image, GrayImage) derivate_gauss(GrayImage, DerivGauss, 1, "constant") sobel_amp_orientation(DerivGauss, Amp, Ori, "cyclic", "normalized", "empirical") nonmax_suppression(Amp, Ori, EdgeDir, "no_check", 8, "full") set_draw("margin") set_color("green") set_lut("default") draw_region(EdgeDir, Contours) threshold(Amp, Edge, 50, 100) thin_edge(Edge, ThinEdge) thin_edge(ThinEdge, ThinEdge, "negative") display(ThinEdge)
三、使用 HDevelop 實現形狀檢測
形狀檢測是根據給定的形狀,對圖像中對象進行辨認的任務。很多產品質量檢測、機器視覺應用、場景識別、醫學影像處理都需要用到形狀檢測。這裡我們用 HDevelop 實現一個簡單的形狀檢測:如果屏幕中有一張紅色矩形,則彈出「紅色矩形出現」的消息框。
Red := 128 set_color("red") set_draw('margin') device := open_framegrabber('GigE-V-5006', 0,0,0,0,0,0,'default', -1,'false') grab_image_async(Image, device, -1) for i := 0 to 10000 by 1 grab_image_async(Image, device, -1) tuple_mean_value(Image, Gray, Row, Column) dev_update_window(0) if abs(Red-Row)<10 and tuple_abs(Row-Column)<10 and abs(Red-Column)<10 then message('紅色矩形出現')
四、結語
在這篇文章中,我們從兩個方面介紹了 HDevelop 的使用方法。作為一款強大的圖像處理開發軟體,它既能夠幫助我們完成一些簡單的圖像處理任務,也能夠支持更為複雜的視覺計算項目。希望讀者能夠通過閱讀本文,對此軟體有一個初步的了解,並可以在實際開發中快速掌握相關技巧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/190868.html