LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#中使用Halcon開發(fā)視覺檢測(cè)程序教程

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

一、環(huán)境準(zhǔn)備

1. 安裝Halcon

從Halcon官方網(wǎng)站下載適合你操作系統(tǒng)的安裝包,按照安裝向?qū)瓿砂惭b。安裝過程中,記住安裝路徑,后續(xù)配置環(huán)境時(shí)會(huì)用到。

2. 配置Visual Studio項(xiàng)目

打開Visual Studio,創(chuàng)建一個(gè)新的C#項(xiàng)目(例如Windows Forms應(yīng)用程序或WPF應(yīng)用程序)。在項(xiàng)目中添加對(duì)Halcon庫(kù)的引用,具體步驟如下:

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

二、圖像采集

1. 使用相機(jī)采集圖像

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

using HalconDotNet;
public partial class Form1 : Form
{
    HObject ho_Image;
    HOperatorSet.GenEmptyObj(out ho_Image);
    HTuple hv_AcqHandle;
    // 打開相機(jī)
    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);
    // 關(guān)閉相機(jī)
    HOperatorSet.CloseFramegrabber(hv_AcqHandle);
}

在上述代碼中,OpenFramegrabber函數(shù)用于打開相機(jī),參數(shù)根據(jù)實(shí)際相機(jī)配置進(jìn)行修改,GrabImage函數(shù)用于采集圖像,采集完成后使用CloseFramegrabber關(guān)閉相機(jī)。

2. 讀取本地圖像

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

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

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

三、圖像預(yù)處理

圖像預(yù)處理是視覺檢測(cè)的重要環(huán)節(jié),常見的預(yù)處理操作包括灰度轉(zhuǎn)換、濾波、二值化等。

1. 灰度轉(zhuǎn)換

將彩色圖像轉(zhuǎn)換為灰度圖像,便于后續(xù)處理:

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

2. 濾波

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

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

這里的5,5表示濾波模板的大小,可根據(jù)實(shí)際情況調(diào)整。

3. 二值化

將灰度圖像轉(zhuǎn)換為二值圖像,突出感興趣區(qū)域:

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

100255是灰度閾值,根據(jù)圖像特點(diǎn)設(shè)置合適的值。

四、特征提取與檢測(cè)

1. 邊緣檢測(cè)

使用Canny算子進(jìn)行邊緣檢測(cè):

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

2. 形狀匹配

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

// 創(chuàng)建模板
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);

// 在目標(biāo)圖像中查找模板
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);

上述代碼先創(chuàng)建模板模型,然后在目標(biāo)圖像中查找匹配的形狀,最后銷毀模板模型。

五、結(jié)果顯示與輸出

1. 在窗口中顯示圖像

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

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

2. 輸出檢測(cè)結(jié)果

將檢測(cè)到的物體位置、形狀等信息輸出到控制臺(tái)或保存到文件:

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開發(fā)視覺檢測(cè)程序的基本步驟和示例代碼。實(shí)際應(yīng)用中,你需要根據(jù)具體的檢測(cè)需求,進(jìn)一步優(yōu)化算法和參數(shù)設(shè)置。

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


閱讀原文:原文鏈接


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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲首页国产精品丝袜 | 亚洲a级在线免费 | 日韩无砖专区一中文字视频 | 伊人五月天在线视频网 | 久久三级中文欧大战字幕 | 亚洲欧美另类国产制服图区 |