女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Halcon的C#二次開(kāi)發(fā)及經(jīng)驗(yàn)分享

新機(jī)器視覺(jué) ? 來(lái)源:工控Zero ? 2023-06-27 14:51 ? 次閱讀

1、Halcon二次開(kāi)發(fā)的兩種方式

① 使用C#的語(yǔ)法方式逐句改寫(xiě)Halcon代碼

優(yōu)點(diǎn):各種變量的類(lèi)型清楚,可讀性強(qiáng),改寫(xiě)后代碼行數(shù)幾乎不會(huì)增加多少。

缺點(diǎn):改寫(xiě)工作量大,容易出錯(cuò),如果Halcon代碼量大,后期將難以更新維護(hù)。

② 封裝成函數(shù)導(dǎo)出(推薦)

優(yōu)點(diǎn):操作簡(jiǎn)單,對(duì)開(kāi)發(fā)人員編程能力要求低,工作量少,且便于維護(hù)。

缺點(diǎn):Halcon函數(shù)導(dǎo)出的代碼可讀性極低,一旦丟失原Halcon文件,二次開(kāi)發(fā)程序?qū)㈦y以更新維護(hù)。

建議:主二副一。

2、Halcon聯(lián)合C#開(kāi)發(fā)必備的設(shè)置步驟(Halcon 12 + Visual studio 2013)

① 在項(xiàng)目“引用”中添加halcondotnet.dll。其一般路徑如下:

C:Program FilesMVTecHALCON-12.0indotnet35halcondotnet.dll

② 在“工具箱”的“選擇項(xiàng)”中添加hWindowControl控件,這是Halcon 12唯一提供的控件

③ 在用到Halcon代碼的類(lèi)頂部添加using HalconDotNet;

④ 在“屬性”——“生成”中將目標(biāo)平臺(tái)由“Any CPU”改為“x64”(計(jì)算機(jī)推薦使用64位系統(tǒng))

⑤ 如果安裝Halcon時(shí)不是安裝在默認(rèn)路徑,可能需要將halcon.dll文件復(fù)制到當(dāng)前項(xiàng)目的輸出路徑下,halcon.dll的路徑為:C:Program FilesMVTecHALCON-12.0inx64-win64halcon.dll

3、Halcon圖形元素的顯示

hWindowControl1.HalconWindow.DispObj(image);//顯示圖像、Region、Xld

hWindowControl1.HalconWindow.SetDraw("margin");//設(shè)置填充的模式

hWindowControl1.HalconWindow.SetColor("green");//設(shè)置顯示顏色

4、系統(tǒng)全局參數(shù)設(shè)置(非必要,但建議設(shè)置)

HOperatorSet.SetSystem("do_low_error","false");//少報(bào)錯(cuò)

HOperatorSet.SetSystem("clip_region","false");//region在圖像外不切掉

HOperatorSet.SetSystem("border_shape_models","true");//依然匹配邊緣的圖形

5、調(diào)試

C#中Halcon部分代碼的調(diào)試不太方便,但也不是毫無(wú)辦法。

① 調(diào)試時(shí)HTuple類(lèi)型的變量可以直接查看值。

② Image、Region、Xld的變量一般只能通過(guò)“保存文件到本地”來(lái)查看變量情況。

HOperatorSet.WriteImage(image,"jpg",0x000000,"1.jpg");//彩色圖像

HOperatorSet.WriteImage(image,"jpg",0,"1.jpg");//灰度圖像

HOperatorSet.WriteRegion(ho_RegionUnion,"1.hobj");//后綴用.reg也行

HOperatorSet.WriteContourXldDxf(contours,"1.dxf");

③ 安裝Halcon的變量檢查插件到Visual Studio。該安裝文件所在的默認(rèn)路徑為:

C:Program FilesMVTecHALCON-12.0miscHALCON_Variable_Inspect.vsix

6、在hWindowControl控件中顯示文字

以下兩個(gè)函數(shù)的內(nèi)容由Halcon中的set_display_font和disp_message算子導(dǎo)出,可完成控件中的文字顯示。

set_display_font(windowHandle,hv_TextSize,"mono","true","false");

disp_message(windowHandle,hv_Text,"window",row,col,hv_Color,"true");

7、格式轉(zhuǎn)換

① HTuple兼容int、double等數(shù)據(jù)類(lèi)型

② HObject類(lèi)型的圖像兼容HImage類(lèi)型的圖像

③ Bitmap轉(zhuǎn)Himage(24位或8位的)的方法如下:

public static HImage Bitmap2HImage_24(Bitmap bImage)
{
    Bitmap bImage24;
    BitmapData bmData = null;
    Rectangle rect;
    IntPtr pBitmap;
    IntPtr pPixels;
    HImage hImage = new HImage();
    rect = new Rectangle(0, 0, bImage.Width, bImage.Height);
    bImage24 = new Bitmap(bImage.Width, bImage.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bImage24);
    g.DrawImage(bImage, rect);
    g.Dispose();
    bmData = bImage24.LockBits(rect, ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
    pBitmap = bmData.Scan0;
    pPixels = pBitmap;
    hImage.GenImageInterleaved(pPixels, "bgr", bImage.Width, bImage.Height, -1, "byte", 0, 0, 0, 0, -1, 0);
    bImage24.UnlockBits(bmData);


    return hImage;
}
public static HImage Bitmap2HImage_8(Bitmap bImage)
{
    Bitmap bImage8;
    BitmapData bmData = null;
    Rectangle rect;
    IntPtr pBitmap;
    IntPtr pPixels;
    var hImage = new HImage();
    rect = new Rectangle(0, 0, bImage.Width, bImage.Height);
    bmData = bImage.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
    pBitmap = bmData.Scan0;
    pPixels = pBitmap;
    hImage.GenImage1("byte", bImage.Width, bImage.Height, pPixels);
    bImage.UnlockBits(bmData);
    //formathimage = hImage;
    return hImage;
}

8、在hWindowControl控件中縮放圖像

在hWindowControl中鼠標(biāo)位置可用GetMposition獲得,SetPart可改變窗口中顯示的圖像部分。

HOperatorSet.GetMposition(hWHandle,outmouseY,outmouseX,outmbutton);

HOperatorSet.SetPart(hWHandle,mRow1,mCol1,mRow2,mCol2);

set_part:用于修改窗口中顯示的圖像部分。(Row1,Column1) 表示要顯示的圖像部分的左上角, (Row2,Column2)表示要顯示的圖像部分的右下角。(詳見(jiàn)dev_set_part和set_part的幫助文檔)

9、Halcon圖形元素與其他圖像算法庫(kù)數(shù)據(jù)的交互

Halcon的Region、Xld是自己的特有格式,它們與外界是不通用的。目前我研究出來(lái)的主要是通過(guò)將坐標(biāo)點(diǎn)作為橋梁來(lái)與外界進(jìn)行數(shù)據(jù)交互。

Region轉(zhuǎn)化為坐標(biāo)點(diǎn):get_region_polygon(Region: :Tolerance:Rows,Columns)

坐標(biāo)點(diǎn)轉(zhuǎn)化為Region:gen_region_polygon_filled( :Region:Rows,Columns: )

Xld轉(zhuǎn)化為坐標(biāo)點(diǎn) :get_contour_xld(Contour: : :Row,Col)

坐標(biāo)點(diǎn)轉(zhuǎn)化為Xld :gen_contour_polygon_xld( :Contour:Row,Col: )

來(lái)源:工控Zero

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7630

    瀏覽量

    90192
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4371

    瀏覽量

    64205
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4887

    瀏覽量

    70260
  • HALCON
    +關(guān)注

    關(guān)注

    17

    文章

    66

    瀏覽量

    27689

原文標(biāo)題:Halcon的C#二次開(kāi)發(fā)及經(jīng)驗(yàn)分享

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口

    短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口短信貓JAVA短信接口 JAVA短信控件 JAVA短信貓二次開(kāi)發(fā)包金笛技術(shù)JAVA短信接口 JAVA短信
    發(fā)表于 11-26 14:01

    [轉(zhuǎn)帖]短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口

    短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口短信貓JAVA短信接口 JAVA短信控件 JAVA短信貓二次開(kāi)發(fā)包金笛技術(shù)JAVA短信接口 JAVA短信
    發(fā)表于 11-26 20:09

    短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口)

    短信貓二次開(kāi)發(fā)專(zhuān)家(DELPHI/ASP/PB/VB/VC/C#/JAVA/ 中間件數(shù)據(jù)庫(kù)接口)短信貓JAVA短信接口 JAVA短信控件 JAVA短信貓二次開(kāi)發(fā)包金笛技術(shù)JAVA短信接口 JAVA
    發(fā)表于 01-10 16:35

    CAXA2011二次開(kāi)發(fā),CRX; CAX2007二次開(kāi)發(fā)

    CAXA2011二次開(kāi)發(fā),CRX; CAX2007二次開(kāi)發(fā),EBA QQ:46841341 電話(huà):*** 何生 標(biāo)題、明細(xì)、自動(dòng)參數(shù)化產(chǎn)生圖紙,PDM、PLM集成系統(tǒng),面積、重量、各種個(gè)性化程序
    發(fā)表于 01-05 23:05

    手機(jī)模塊二次開(kāi)發(fā)

    手機(jī)的wifi模塊、4g/3g通信模塊、藍(lán)牙模塊等固有模塊,在進(jìn)行二次開(kāi)發(fā)時(shí),需不需要對(duì)硬件本身進(jìn)行改造?或者是二次開(kāi)發(fā)普遍都需要對(duì)硬件改造還是普遍都不需要對(duì)硬件改造??
    發(fā)表于 06-29 11:49

    地面站二次開(kāi)發(fā)服務(wù)

    Mission Planner二次開(kāi)發(fā):基于MP地面站源碼,進(jìn)行功能刪減、增加等;深度定制化地面站:基于MP地面站進(jìn)行UI全新設(shè)計(jì),功能增減,企業(yè)Logo定制;基于Mavlink協(xié)議地面站定制開(kāi)發(fā)
    發(fā)表于 06-19 15:52

    AutoCAD的二次開(kāi)發(fā)

    AutoCAD的二次開(kāi)發(fā) AutoCAD的二次開(kāi)發(fā)主要涉及以下內(nèi)容:(1) 編寫(xiě)各種用戶(hù)自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL
    發(fā)表于 02-14 16:59 ?1912次閱讀

    ANSYS的二次開(kāi)發(fā)技術(shù)

    ANSYS的二次開(kāi)發(fā)技術(shù) ANSYS提供的二次開(kāi)發(fā)工具有三個(gè):參數(shù)化設(shè)計(jì)語(yǔ)言(ANSYS Parametric Design Language,APDL),用戶(hù)界面設(shè)計(jì)語(yǔ)言(User Interface
    發(fā)表于 10-02 10:42 ?2132次閱讀

    基于VC的Cadence二次開(kāi)發(fā)

    文中研究了用VC對(duì)Cadence做二次開(kāi)發(fā),使用VC編寫(xiě)操作界面,通過(guò)VC與SKILL語(yǔ)言通信,實(shí)現(xiàn)了VC界面對(duì)Cadence軟件的控制,完成特定操作,給出了實(shí)現(xiàn)的代碼。
    發(fā)表于 10-19 14:38 ?41次下載
    基于VC的Cadence<b class='flag-5'>二次開(kāi)發(fā)</b>

    AutoCAD VBA二次開(kāi)發(fā)教程

    AutoCAD VBA二次開(kāi)發(fā)教程,學(xué)習(xí)二次開(kāi)發(fā)的頂起
    發(fā)表于 11-02 16:16 ?0次下載

    二次開(kāi)發(fā)串口通信協(xié)議

    lobot機(jī)器人二次開(kāi)發(fā)
    發(fā)表于 05-09 08:55 ?7次下載

    對(duì)功率計(jì)進(jìn)行二次開(kāi)發(fā)

    功率計(jì)做二次開(kāi)發(fā)首先要確認(rèn)的就是通訊的接口,ZLG致遠(yuǎn)電子PA300系列功率計(jì)提供USB、GPIB、以太網(wǎng)以及串口接口,4種接口免費(fèi)標(biāo)配,都可以用于二次開(kāi)發(fā)。
    的頭像 發(fā)表于 04-29 15:12 ?3338次閱讀

    LTE模塊A7600C1-MNSE二次開(kāi)發(fā)硬件設(shè)計(jì)手冊(cè)

    LTE模塊A7600C1-MNSE二次開(kāi)發(fā)硬件設(shè)計(jì)手冊(cè)
    發(fā)表于 08-12 15:31 ?12次下載

    SOLIDWORKS二次開(kāi)發(fā)應(yīng)用范圍與實(shí)例

    SOLIDWORKS二次開(kāi)發(fā)為企業(yè)和設(shè)計(jì)師們提供了廣闊的定制化空間,能夠更好地滿(mǎn)足復(fù)雜多變的設(shè)計(jì)需求,幫助工程師和設(shè)計(jì)師提高工作效率,實(shí)現(xiàn)更復(fù)雜的自動(dòng)化任務(wù)。如您有SOLIDWORKS二次開(kāi)發(fā)需求,歡迎咨詢(xún)Solidkits
    的頭像 發(fā)表于 12-13 16:33 ?946次閱讀

    深居淺出AutoCAD二次開(kāi)發(fā)

    深居淺出AutoCAD二次開(kāi)發(fā),net版
    發(fā)表于 01-06 14:12 ?6次下載