halcon與delphi

來源:互聯網
上載者:User

標籤:

halcon與delphi

      halcon與delphi系列,早兩年就想寫,不過一方面,因為halcon是售價高達數萬歐元(不是人民幣)的專業軟體,知道的人不多,
      另外一方面,個人瑣事太多,一直沒時間動筆,這次,借國慶空閑,匆匆忙忙,開個頭先。
      這個標題本來準備用:《halcon、opencv與delphi、python、vb、c++》
     太雜,雖然現在流行長標題,還是簡化了。

 

      做映像分析有十多年,寫過原生的OCR字元識別,當時沒有opencv,全部是原生代碼,寫的很痛苦,和寫彙編差不多
      不過也學習到不少東西,blur、細化、骨架、閉合、。。。。。。,從這點看,學習下opencv,對於基礎也是必要的
      效果還可以,基本上除開QQ過於變態,一般的論壇、csdn、工行、移動、部落格園、老版新浪微博的驗證碼,都能簡單愉快的暴力識別。
      這幾年,主要做映像分析、字型結構的映像分析、AI方面的項目,實業方面,主要是PCB抄板設計,這個是protel電路圖逆向工程,必需的。

      映像分析主要用過agg、opencv、cgal、labview、vision、halcon、sci、pil,以及一大波gis內建的高素質幾何計算庫
      程式設計語言早期是:c、c++、,這幾年是:python、delphi,
      目前,映像分析基本上就只是:delphi+halcon,(機器學習與大資料,是python+sci.xxx+pandas)
      delphi+halcon,這個組合,可以說是映像分析的神級配置,無論是開發效率,還是運行實在是太高了,分分鐘秒殺c+opencv,c+python,以及其他各種組合,

      特別是開發效率,幾乎只有cv與c++的十分之一一,因為halcon內建的就是簡化版本的pascal指令碼型程式設計語言,而且halcon的控制項封裝,非常龐大、專業、細緻,基本上和原生vcl控制項差不多。

halcon與opencv

      機器人,是目前國家鼓勵的科技、產業項目,目前程式員缺口極大,而國內早期,和目前,delphi程式員,可能是世界上最多的,早幾年,還傳說,盛大準備收購delphi,雖然沒成,不過絕對不是錢的問題。
      機器人,最核心的人工智慧與機器視覺,人工智慧,python已經是標準
      機器視覺,說白了,還是映像分析,這塊,德國的halcon(海爾肯,自己隨便音譯的),是目前行業最好的方案,基本上沒有對手,
      國內,學術界目前還是opencv為主,雖然cv是免費的,halcon的售價高達數萬歐元,但憑藉其強大的功能和一線生產力效率,企業領域,基本上是halcon獨大。
      opencv雖然很強大,但與halcon相比,無論在開發效率,運行速度以及內建模組功能方面,完全是業餘級的。
      這個原因是多方面的:

  • ::opencv是開源軟體,無法收錄最新的專利、商業演算法,至少有5-10年時間的技術差距
  • ::許多企業自身開發的演算法是嚴格保密的,halcon不少內建函數,即使是專業人員也無法理解函數採用的演算法、模型。
  • ::opencv偏重於學術,演算法雖然簡單,但效率不高,即使是最基本的hough直線檢測,如果不對內部源碼進行二次修改,對原圖進行過濾,結果基本無法直接使用
  • ::opencv最佳化不夠,近年雖然也加入gpu、cuda和c語言高效函數,但與halcon彙編級的最佳化,差距還是很大的
  • ::opencv不夠全面,只有最基本的映像分析模組,缺乏專業的幾何計算模組,由於實際項目,必需記住sci,sympy,cgal等其他幾何計算庫,大大增加了開發成本和學習周期

   例如,即使是最簡單的輪廓分析,opencv只有最基本的矩形、園、橢圓幾種,而halcon要豐富的多;

    而再如,形態學內建模型,cv只有cross、rect、circle三種,而halcon預支模型高達數十種。

    象的堆砌原件,opencv基本上無能為力,而halcon直接秒殺:(ps,本blog還缺幾張圖,有時間補)

halcon與delphi

      halcon的內建語言,基本上是簡化版本的pascal,不過增加了python的元組tuple資料。
      奇怪的是,國內halcon開發,基本上是vb,和c++(csharp)兩種模式
      一線,基層使用者用vb的多,專業學者,大部分使用c++(csharp),而delphi很少有人用。
      這個一方面,與delphi自身近年衰退有關,另外,delphi調用halcon,每次會有20m左右的記憶體泄露,也有關係。
     不過,delphi再不行,在TIOBE2105程式設計語言排名榜上,也是僅次與c(含c、c++、objc、occsharp)的行業第二大原生程式設計語言。
     (ps,xe9、xe10,delphi強化了並行開發,不過遠不如python的map優雅方便,如果delphi能夠整合cuda開發,進入gpu、hpc領域,才是真正鳳凰涅槃)

       而記憶體泄露,是crack的問題,就是c++,也有,用vb因為使用halcon的.net封裝模組,因為net平台內建gc管理,可以解決,其實delphi也可以採用.net模組

 

delphi、c++、vb、python與影像處理

 

      vb即使對於初學者,和在產品開發原型階段,也是很差的映像開發語言。
      初學者,以及簡單的產品原型開發,筆者推薦python+opencv,cv3.0已經支援python3了,
      可惜,delphi的cv庫還是v2.49版本的,不然,delphi+cv3也是個不錯的選擇,特別是調試、效率方面

     c++,無論如何,不是映像分析理想的工具,
     對於映像分析,c語言類的底線,差不讀只有c了,即使是opencv,90%也是c,
    (fontforge的開發人員,是如此痛恨c++,以至於在faq裡,對c++大段吐槽)

     映像分析起點就是2D,二維的,複雜一些,連續映像序列,3D,生動影像分析,都必需是多維的資料模型。
     而c語言,先天缺乏內建數組,採用*指標結構,作為數組。
     *指標數組,對於簡單的一維資料分析,勉強可以,但對於2維、3維以及更高的多維資料,非常痛苦。
     大家知道,影像處理非常吃記憶體,而c的記憶體管理,完全是*指標,歐式,複雜無比。
     對於一線程式員而言,採用c++進行影像處理,在c++程式設計語言方面的時間成本,甚至要高於映像分析演算法本身。
     至於c++,唯一的優點,可能就是速度。
     而c的速度優勢,是相對於vb、python的,可能有10-20倍的運行速度優勢,不過對於delphi,就是在最嚴格的對比當中,也是基本差不多。
     不過delphi十倍於c的開發效率,使程式員,能夠在軟體開發的原型、中期、調試、交付、維護等各個階段,採用更多的模型演算法,進行最佳化,因此,實戰當中,delphi+halcon的組合,要遠遠優於c+halcon,c+opencv
     以往,影像處理,delphi唯一的短板,是缺乏工業級的映像庫,cv、cgal對於delphi的支援一直不夠好
     不過短板這個已經被halocn給完美的彌補了。

     重要的話要說三遍,3x

      delphi+halcon,映像分析神級配置,分分鐘秒殺c+opencv,c+python,以及其他各種組合

      delphi+halcon,映像分析神級配置,分分鐘秒殺c+opencv,c+python,以及其他各種組合

      delphi+halcon,映像分析神級配置,分分鐘秒殺c+opencv,c+python,以及其他各種組合

 

halcon與delphi

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.