LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#中使用Halcon開發視覺檢測程序教程

admin
2025年5月3日 15:12 本文熱度 966

一、環境準備

1. 安裝Halcon

從Halcon官方網站下載適合你操作系統的安裝包,按照安裝向導完成安裝。安裝過程中,記住安裝路徑,后續配置環境時會用到。

2. 配置Visual Studio項目

打開Visual Studio,創建一個新的C#項目(例如Windows Forms應用程序或WPF應用程序)。在項目中添加對Halcon庫的引用,具體步驟如下:

  1. 在解決方案資源管理器中,右鍵點擊“引用”,選擇“添加引用”。
  2. 在彈出的對話框中,點擊“瀏覽”,找到Halcon安裝目錄下的bin文件夾(例如C:\Program Files\MVTec\HALCON-21.11-Progress\bin\dotnet35,不同版本路徑可能有所不同),選擇halcondotnet.dll文件并添加。

二、圖像采集

1. 使用相機采集圖像

Halcon支持多種相機接口,如GigE Vision、USB等。以下是使用GigE Vision相機采集圖像的示例代碼:

using HalconDotNet;
public partial class Form1 : Form
{
    HObject ho_Image;
    HOperatorSet.GenEmptyObj(out ho_Image);
    HTuple hv_AcqHandle;
    // 打開相機
    HOperatorSet.OpenFramegrabber("GigEVision"000000"default"8"rgb"-1"false""default""192.168.1.100"1883-1out hv_AcqHandle);
    // 采集圖像
    HOperatorSet.GrabImage(out ho_Image, hv_AcqHandle);
    // 關閉相機
    HOperatorSet.CloseFramegrabber(hv_AcqHandle);
}

在上述代碼中,OpenFramegrabber函數用于打開相機,參數根據實際相機配置進行修改,GrabImage函數用于采集圖像,采集完成后使用CloseFramegrabber關閉相機。

2. 讀取本地圖像

如果需要處理本地已有的圖像文件,可使用以下代碼:

HObject ho_Image;
HOperatorSet.ReadImage(out ho_Image, "C:/path/to/your/image.jpg");

C:/path/to/your/image.jpg替換為實際的圖像文件路徑。

三、圖像預處理

圖像預處理是視覺檢測的重要環節,常見的預處理操作包括灰度轉換、濾波、二值化等。

1. 灰度轉換

將彩色圖像轉換為灰度圖像,便于后續處理:

HObject ho_GrayImage;
HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);

2. 濾波

使用均值濾波去除圖像噪聲:

HObject ho_SmoothedImage;
HOperatorSet.MeanImage(ho_GrayImage, out ho_SmoothedImage, 55);

這里的5,5表示濾波模板的大小,可根據實際情況調整。

3. 二值化

將灰度圖像轉換為二值圖像,突出感興趣區域:

HObject ho_BinaryImage;
HOperatorSet.Threshold(ho_SmoothedImage, out ho_BinaryImage, 100255);

100255是灰度閾值,根據圖像特點設置合適的值。

四、特征提取與檢測

1. 邊緣檢測

使用Canny算子進行邊緣檢測:

HObject ho_Edges;
HOperatorSet.EdgesSubPix(ho_SmoothedImage, out ho_Edges, "canny"12040);

2. 形狀匹配

假設我們要檢測圖像中的圓形物體,可以使用模板匹配的方法:

// 創建模板
HObject ho_Template;
HOperatorSet.ReadImage(out ho_Template, "C:/path/to/template.jpg");
HObject ho_TemplateGray;
HOperatorSet.Rgb1ToGray(ho_Template, out ho_TemplateGray);
HObject ho_TemplateEdges;
HOperatorSet.EdgesSubPix(ho_TemplateGray, out ho_TemplateEdges, "canny"12040);
HTuple hv_ModelID;
HOperatorSet.CreateScaledShapeModel(ho_TemplateEdges, "auto"0, HTuple.PI, "auto""auto""use_polarity""auto""auto"out hv_ModelID);

// 在目標圖像中查找模板
HTuple hv_Row, hv_Column, hv_Angle, hv_Score;
HOperatorSet.FindScaledShapeModel(ho_SmoothedImage, hv_ModelID, 0, HTuple.PI, 0.710.5"least_squares"00.9out hv_Row, out hv_Column, out hv_Angle, out hv_Score);

// 銷毀模板模型
HOperatorSet.ClearShapeModel(hv_ModelID);

上述代碼先創建模板模型,然后在目標圖像中查找匹配的形狀,最后銷毀模板模型。

五、結果顯示與輸出

1. 在窗口中顯示圖像

如果是Windows Forms應用程序,可以使用Halcon提供的HWindowControl控件顯示圖像:

  1. 在窗體上拖放一個HWindowControl控件。
  2. 使用以下代碼將處理后的圖像顯示在控件中:
hWindowControl1.HalconWindow.DispObj(ho_Image);

2. 輸出檢測結果

將檢測到的物體位置、形狀等信息輸出到控制臺或保存到文件:

for (int i = 0; i < hv_Row.Length; i++)
{
    Console.WriteLine($"Found object at row: {hv_Row[i]}, column: {hv_Column[i]}, angle: {hv_Angle[i]}, score: {hv_Score[i]}");
}

以上就是C#中使用Halcon開發視覺檢測程序的基本步驟和示例代碼。實際應用中,你需要根據具體的檢測需求,進一步優化算法和參數設置。

以上代碼和步驟能幫你搭建起基礎的視覺檢測程序框架。


閱讀原文:原文鏈接


該文章在 2025/5/6 12:46:51 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本有码视频中文字幕 | 日本午夜免费啪视频 | 亚洲女性午夜在线 | 亚洲全高清久久久久 | 亚洲一级在线播放在线观看 | 亚洲日韩Av一区二区三区中文 |