當前位置:首頁 » 生產設備 » halcon怎麼枚舉設備

halcon怎麼枚舉設備

發布時間: 2021-02-09 01:22:36

① 怎樣使用HALCON/.NET類

在HALCON/.NET,我們可以用過一個類的實例
(instances of class)來調用HALCON運算元。在HalconDotNet引用里,也就是動態鏈接庫里包許多實例化一個類方法,這些
方法可能是重載的,靜態的HALCON運算元我們可以直接通過類名來調用(這些方法包括HALCON里所有的運算元),而非靜態的方法必須要通過實例化一個類
後才可以使用,通常HALCON/.NET封裝了一個類的實例化方法以及類方法。

例如在C++中,可以使用以下兩種方法:

1. C++(運算元模式)

通過代碼導出,以C++為例,默認導出為運算元型的語法結構,而非面向對象的;在此模式下,全部函數聲明為全局類型,數據類型只需要用Hobject、HTuple兩類類型進行聲明;

2. C++(面向對象)

可以以面向對象的方式重寫代碼,也即利用類及類的成員函數;在這種模式下,控制變數的類型仍未HTuple,而圖形數據可以由多種類型,如HImage等;

HALCON手冊建議使用者使用第二種方法。

例如我們使用第二種方法實現抓取圖像序列(imagesequence)里第一張圖像,並且將他顯示在HWindowControl窗口中。代碼是:

[cpp] view plain
private HWindow Window;
private HFramegrabber Framegrabber;
private HImage Img;
Window= WindowControl.HalconWindow;
Framegrabber= new HFramegrabber("File", 1, 1, 0, 0, 0, 0, "default",
-1,"default", -1, "default",
"board/board.seq","default", 1, -1);
Img= Framegrabber.GrabImage();
Img.DispObj(Window);

GrabImage運算元是通過HFramegrabber的實例來調用的。如果你是一個有經驗的HALCON使用者,也許你已經看出來HFramegrabber的構造函數調用了OpenFramegraber運算元。

但是對於新手來說,可能剛剛接觸Halcon,對於Halcon運算元還處於熟悉階段,從Hdevelop中直接到出來的代碼也是直接使用靜態類。那麼建議先使用第一種方法,你只需要明白通過HOperatorSet這個類你可以調用任何一個HALCON運算元。

下面我們來看一下到底怎麼樣調用一個運算元。以GrabImage運算元為例:

[cpp] view plain
static void HOperatorSet.GrabImage (out HObject image, HTuple acqHandle)//靜態方法直接調用運算元,包含的參數和halcon運算元參數完全相同
void HImage.GrabImage (HFramegrabber acqHandle)//類中封裝的類方法,要先實例化類後才可以使用
HImage HFramegrabber.GrabImage ()//重載的方法
image(output_object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . image ; HImage
acqHandle(input_control) . . . . . . . . . . . . . . . . . . . . . . . . . .framegrabber ; HFramegrabber / HTuple

[cpp] view plain

我們可以看出,運算元可以通過三個類進行調
用:HOperatorSet, HImage,和HFramegrabber。其中第一種通過HOperatorSet調用主要是用在導出的
HDevelop中(如果你導出程序的話就會看到),也是建議新手使用的方法。而熟悉了之後一般我們在寫程序時建議使用另外兩種方式,就像下面這樣進行調
用:

[cpp] view plain
HImage Image1;
HImage Image4 = newHImage();
HFramegrabberFramegrabber =
newHFramegrabber("File", 1, 1, 0, 0, 0, 0, "default", -1,
"default",-1, "default", "board/board.seq", "default", -1,-1);
Image1 =Framegrabber.GrabImage();
HImage Image3 = null;

需要注意的是通過
HFramegrabber調用返回方法的值,而通過HImage調用沒有返回值而是調用的類實例被修改,也就是HImage對象被修改。通常,調用類實
例不會被一個運算元所修改,除了被上面所看到的「類構造器」(constructor-like)運算元調用。

一些運算元像CountSeconds可以當做類方法來使用,例如,你可以直接通過類名調用它們而不用生成一個實例:

[cpp] view plain
double S1, S2;
S1 =HSystem.CountSeconds();

這是因為這些運算元聲明前面都有static關鍵字:

[cpp] view plain
static void HOperatorSet.CountSeconds (outHTupleseconds)
static double HSystem.CountSeconds()<span style="font-family:'Times New Roman'; font-size:14px; line-height:21px"> </span>

下面我們看一下類的生命周期:從聲明(Declaration)到終結(Finalization)

下面的聲明僅僅聲明了一個類HImage的變數,而沒有指向任何的對象:

[cpp] view plain
HImage Image1;

在這個語句中,你不能只使用變數直接去調用運算元;有些語言裡面甚至不能夠將它用做一個輸出參數(例如VB 2005)。只有先給它一個圖像對象,例如:

[cpp] view plain
Image1 =Framegrabber.GrabImage();

你也可以在聲明的時候初始化一個變數:

[cpp] view plain
HImage Image2 =Framegrabber.GrabImage();

[cpp] view plain
<span style="font-family:Arial,Helvetica,sans-serif"></span><pre name="code" class="cpp">HImage Image3 = null;</pre>

你可以通過一個IsInitialized方法來檢驗一個類實例是否被初始化。

但是使用構造函數(Constructors)後的對象就可以了:

下面的式子是利用類HImage空的構造函數來初始化一個類變數

[cpp] view plain
HImage Image4 = new HImage(); <span style="font-family:'Times New Roman'; font-size:14px"> </span>

類實例可以用來調用「類似構造函數」運算元像GrabImage,用抓住的一張圖片初始化類變數:

[cpp] view plain
Image4.GrabImage(Framegrabber);

除了空的構造器,大部分HALCON/.NET類提供一個或者更多的構造器來初始化基於HALCON運算元的對象。例如,HImage提供了一個構造器:

[cpp] view plain
HImage Image5 = newHImage("fuse");<span style="font-family:'Times New Roman'; font-size:14px; line-height:21px"> </span>

reference manual和右鍵go to definition是很好的參考資料。

關於Finalizers

在.NET中程序員不需要考慮內存管理方面的事情,因為它有自動垃圾回收回收哪些不再使用的對象。HALCON/.NET完全遵循這種規則通過提供所有類的回收器,所以不需要管理資源,例如,一個圖像採集設備的連接會被自動正確的刪除。

對於大部分類,回收器自動調用合適的運算元像CloseFramegrabber來釋放資源。調用的運算元在一個參考手冊頁中列了出來(例如HFramegrabber)。這個運算元不可以通過類來調用,在相應的參考手冊條目中可以看到:

[cpp] view plain
static void HOperatorSet.CloseFramegrabber (HTupleacqHandle)

也就是說你沒有必要調用這樣一個運算元,如果你想用別的參數從新進行連接,它會自動執行。

注意當用HFramegrabber一般的類時不能使用HOperatorSet來關閉或者清除運算元。

但是對於像圖像這種數據變數,它們包含的只是引用,對於他們指向的內存垃圾回收機制也許不會直接清除,這些就需要手動清除:

有一種方法是在處理完事件後直接調用GC清除:

[cpp] view plain
private void Timer_Tick(object sender, System.EventArgs e)
{
Action();
GC.Collect();
GC.WaitForPendingFinalizers();
}

另一種方法是直接調用自帶的銷毀方法:

[cpp] view plain
HImage Image = new HImage("fuse");
...
Image.Dispose();

② halcon是什麼,能幹什麼,學這個需要什麼,只是電腦么

HALCON是德國MVtec公司開發的一套完善的標準的機器視覺演算法包,擁有應用廣泛的機器視覺集成開發環境
維視圖像開發定製軟體
維視圖像開發定製軟體
。它節約了產品成本,縮短了軟體開發周期——HALCON靈活的架構便於機器視覺,醫學圖像和圖像分析應用的快速開發。在歐洲以及日本的工業界已經是公認具有最佳效能的Machine Vision軟體。[1]
HALCON源自學術界,它有別於市面一般的商用軟體包。事實上,這是一套image processing library,由一千多個各自獨立的函數,以及底層的數據管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,型態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能,由於這些功能大多並非針對特定工作設計的,因此只要用得到圖像處理的地方,就可以用HALCON強大的計算 分析能力來完成工作。應用范圍幾乎沒有限制,涵蓋醫學,遙感探測,監控,到工業上的各類自動化檢測。
HALCON支持Windows,Linux和Mac OS X操作環境,它保證了投資的有效性。整個函數庫可以用C,C++,C#,Visual basic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設備提供介面,保證了硬體的獨立性。它為百餘種工業相機和圖像採集卡提供介面,包括GenlCam,GigE和IIDC 1394。

③ 想學習halcon需要什麼基礎

數字圖抄像處理的基本概念和圖像變換襲 圖像增強、圖像恢復與重建、圖像編碼與壓縮 圖像分割、二值圖像處理與形狀分析、紋理分析、模板匹配與模式識別 你看一下武漢大學的賈永紅老師的《數字圖像處理》 裡面把圖像處理的基本內容都講到了 另外你自己可以了解一下常用的圖像處理。
圖像處理(image processing),用計算機對圖像進行分析,以達到所需結果的技術。又稱影像處理。圖像處理一般指數字圖像處理。數字圖像是指用工業相機、攝像機、掃描儀等設備經過拍攝得到的一個大的二維數組,該數組的元素稱為像素,其值稱為灰度值。圖像處理技術的一般包括圖像壓縮,增強和復原,匹配、描述和識別3個部分。 常見的系統有康耐視系統、圖智能系統等,目前是正在逐漸興起的技術。

④ halcon 圖像採集時需要哪些系統組件

Halcon圖像獲取與相關參數

圖像獲取程序例1.
1.set_system( : : SystemParameter, Value : )
設置系統參數
2.open_framegrabber ( : : Name, HorizontalResolution,VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn,Field, BitsPerChannel, ColorSpace, Generic, ExternalTrigger,CameraType, Device, Port, LineIn : AcqHandle )
打開並配置圖像採集設備
輸入控制:
Name:圖像採集設備的名稱
HorizontalResolution和VerticalResolution:預期的圖像採集介面的水平解析度和垂直解析度
ImageWidth和ImageHeight:指預期圖像的寬度部分和高度部分。
StartRow和StartColumn:指顯示預期圖像的開始坐標
Field:預期圖像是一半的圖像或者是完整圖像
BitsPerChannel:每像素比特數和圖像通道
ColorSpace:獲取圖像的輸出形式{gray、raw、rgb、yuv、default}
Generic:通用參數與設備細節部分的具體意義。

⑤ HALCON機器視覺軟體的HALCON簡介

它節約了產品成本,縮短了軟體開發周期——HALCON靈活的架構便於機器視覺,醫學圖像和圖像分析應用的快速開發。在歐洲以及日本的工業界已經是公認具有最佳效能的Machine Vision軟體。
HALCON源自學術界,它有別於市面一般的商用軟體包。事實上,這是一套image processing library,由一千多個各自獨立的函數,以及底層的數據管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,形態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能,由於這些功能大多並非針對特定工作設計的,因此只要用得到圖像處理的地方,就可以用HALCON強大的計算 分析能力來完成工作。應用范圍幾乎沒有限制,涵蓋醫學,遙感探測,監控,到工業上的各類自動化檢測。
HALCON支持Windows,Linux和Mac OS X操作環境,它保證了投資的有效性。整個函數庫可以用C,C++,C#,Visual basic和Delphi等多種普通編程語言訪問。HALCON為大量的圖像獲取設備提供介面,保證了硬體的獨立性。它為百餘種工業相機和圖像採集卡提供介面,包括GenlCam,GigE和IIDC 1394。

⑥ HALCON機器視覺軟體的HALCON選擇

近年來,由於Machine Vision技術的發展,這種可以取代人眼,對重復工作不會疲勞,精度高且穩定的特質,促成了高科技業,例如電子業產能的大幅提升。而MVTec公司更是不斷的與學術界合作,並且將最新的學術研究成果納入其中,不但使自己的技術處於業界領導地位,同時也將machine vision技術推向更高的境界。讓您選擇HALCON出於以下3點理由:
1.為了讓使用者能在最短的時間里開發出視覺系統,HALCON包含了一套互動式的程序設計界面HDevelop,可在其中以HALCON程序代碼直接撰寫,修 改,執行程序,並且可以查看計算過程中的所有變數,設計完成後,可以直接輸出C、C++、VB、C#、vb等程序代碼,套入您的程序中。 HDevelop同時和數百個范常式序鏈接,除了個別計算功能的說明,您也可以隨時依據不同的類別找到應用的範例,方便參考。此外,以問題為導向的手冊, 可以讓您找到最適切的使用說明以及作業觀念。
2.HALCON不限製取像設備,可以自行挑選合適的設備。原廠已提供了60 余種相機的驅動鏈接,即使是尚未支持的相機,除了可以透過指標(pointer)輕易的抓取影像,還可以利用HALOCN開放性的架構,自行撰寫DLL文件和系統連接。
3.使用HALOCN,在設計人機介面時沒有特別的限制,也不必特別的可視化組件,您可以完全使用開發環境下的程序語言,例如visual studio、.NET、Mono等等,架構自己的介面,end user看不到您的開發工具,而且在執行作業的機器上,只需要很小的資源套件。

⑦ 怎麼向halcon中發送串口數據

關於串口設備,復最好聯制系廠家詢問是否提供API介面。

關於API介面一般是一個可供調用的DLL文件。

如果有可以直接在C#中引用,作為類庫來操作設備。

具體調用方式需要詢問廠家或參閱api的文檔說明。

不提供軟體介面的設備是無法進行開發的。

我大概搜了下這個設備,設備是提供配套軟體的,那麼這款設備是有相關通訊介面類庫的,也就是可以用C#進行開發。
如果找不到API文檔,
請嘗試用串口調試工具,跟蹤配套軟體的每一步操作,獲取串口通訊報文,用C#模擬操作報文自己封裝通訊類後進行開發。

⑧ 學習halcon需要學習哪些圖像處理知識

數字圖像處理的基本概念和圖像變換 圖像增強、圖像恢復與重建、圖像編碼與壓縮 圖像分割專、二值圖像處理與屬形狀分析、紋理分析、模板匹配與模式識別 你看一下武漢大學的賈永紅老師的《數字圖像處理》 裡面把圖像處理的基本內容都講到了 另外你自己可以了解一下常用的圖像處理。
圖像處理(image processing),用計算機對圖像進行分析,以達到所需結果的技術。又稱影像處理。圖像處理一般指數字圖像處理。數字圖像是指用工業相機、攝像機、掃描儀等設備經過拍攝得到的一個大的二維數組,該數組的元素稱為像素,其值稱為灰度值。圖像處理技術的一般包括圖像壓縮,增強和復原,匹配、描述和識別3個部分。 常見的系統有康耐視系統、圖智能系統等,目前是正在逐漸興起的技術。

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506