91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

全網(wǎng)最詳細(xì)解析Halcon自定義函數(shù)封裝方法

新機(jī)器視覺 ? 來源:CSDN技術(shù)社區(qū) ? 作者:小邢同學(xué) ? 2021-04-22 11:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有網(wǎng)友說不太清楚這個(gè)halcon函數(shù)的封裝方法。今天寫個(gè)教程帖子,大家一起進(jìn)步分享。

1、名詞解釋

算子:
指Halcon中最基礎(chǔ)、最底層的函數(shù)(即你看不到它的代碼實(shí)現(xiàn)),一個(gè)算子只有一句話,例如threshold算子。

函數(shù):
由多個(gè)算子組合成的函數(shù)。其特點(diǎn)是,可以通過鼠標(biāo)右鍵單擊“顯示函數(shù)”打開。如下圖:

d2faea3a-a29b-11eb-aece-12bb97331649.png

d3093054-a29b-11eb-aece-12bb97331649.png

通常,Halcon代碼程序窗口中,算子和小函數(shù)的代碼顏色是有差異的。如下圖:

d31d3810-a29b-11eb-aece-12bb97331649.png

2、例子介紹

1、處理原圖與任務(wù):

要求求亮區(qū)外圓半徑大小。

2、代碼與解析:

* 讀入圖片 read_image (Image, ‘C:/Users/Administrator/Desktop/1.jpg’)

根據(jù)圖片打開窗口 dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)

顯示圖片,用于預(yù)覽 dev_display (Image)

二值化 binary_threshold (Image, Region, ‘max_separability’, ‘light’, UsedThreshold)

分割連通域 connection (Region, ConnectedRegions)

使用特征篩選去掉小面積區(qū)域的干擾 select_shape (ConnectedRegions, SelectedRegions, ‘a(chǎn)rea’, ‘a(chǎn)nd’, 5000, 1000000000)

合并區(qū)域,為下一步求取最小外接矩形做準(zhǔn)備 union1 (SelectedRegions, RegionUnion)

求取最小外接矩形 smallest_circle (RegionUnion, Row, Column, Radius)

生成一個(gè)圓形,用于顯示 gen_circle (Circle, Row, Column, Radius)

*顯示結(jié)果前的準(zhǔn)備 dev_clear_window () dev_set_draw (‘margin’) dev_set_line_width (3) dev_set_color (‘red’)

顯示相關(guān)結(jié)果 dev_display (Image) dev_display (Circle) disp_message (WindowHandle, ‘圓環(huán)半徑: ‘+Radius, ‘window’, 50, 50, ‘black’, ‘true’)

3、Halcon函數(shù)封裝方式

Halcon的函數(shù)創(chuàng)建分為以下幾個(gè)步驟:1、明確需求,要封裝的函數(shù)要實(shí)現(xiàn)什么功能 2、選取函數(shù)部分進(jìn)行函數(shù)創(chuàng)建,更改函數(shù)接口,即更改輸入輸出變量 3、運(yùn)行驗(yàn)證與函數(shù)更改操作

①明確需求

我們拿上邊的這個(gè)程序舉例,我們這個(gè)程序完成的任務(wù)主要是:求取外接圓的半徑并且顯示

我們看代碼一共分為三個(gè)部分:1.準(zhǔn)備階段:讀入圖片、打開窗口、預(yù)覽等工作。 2.處理階段:進(jìn)行圖像處理,求取結(jié)果 3.顯示階段:對結(jié)果進(jìn)行顯示 如下圖:

d3555b6e-a29b-11eb-aece-12bb97331649.png

明確1:我們需要將第二部分“處理階段的算子封裝成一個(gè)函數(shù)”

此時(shí)我們再看處理階段的代碼,我們由分析可知: 1、此段代碼需要一個(gè)圖片,用于圖像處理 2、需要得出圓環(huán)外接圓這個(gè)結(jié)果(外接圓的位置與半徑) 由此確定:傳入一個(gè)圖像變量,傳出外接圓的坐標(biāo)(X,Y)與外接圓的半徑到此需求已經(jīng)明確。

②選取函數(shù)部分進(jìn)行函數(shù)創(chuàng)建,更改函數(shù)接口

選中處理階段函數(shù),右鍵,點(diǎn)擊“創(chuàng)建新函數(shù)”。如下圖所示:

d397e0b0-a29b-11eb-aece-12bb97331649.png

之后顯示頁面如下:

d59880fe-a29b-11eb-aece-12bb97331649.png

首先點(diǎn)擊一般設(shè)置欄,編輯函數(shù)名稱(你想把這個(gè)函數(shù)名叫什么就命什么名),再點(diǎn)擊“參數(shù)”。 之后顯示頁面如下:

d5cb8c88-a29b-11eb-aece-12bb97331649.png

圖標(biāo)參數(shù)含義:即圖片、區(qū)域、Xld輪廓等圖形變量。 變量參數(shù)含義:指我們在程序中用得到的整形、浮點(diǎn)型、字符串、數(shù)組等變量

我們可以點(diǎn)擊添加變量按鈕進(jìn)行輸入輸出變量的添加操作 如果我們要進(jìn)行刪除變量操作,操作方式如下圖: 首先選中變量,點(diǎn)擊移除

d5f902da-a29b-11eb-aece-12bb97331649.png

點(diǎn)擊移除后:

d61eb28c-a29b-11eb-aece-12bb97331649.png

也可以通過選中函數(shù)后點(diǎn)擊“上移”、“下移”更改變量順序。

我們由需求分析步驟可知,我們需要: 傳入一個(gè)圖像變量,傳出外接圓的坐標(biāo)(X,Y)與外接圓的半徑 修改參數(shù)頁面變量如下,并點(diǎn)擊一般文檔切換欄目:

d6391406-a29b-11eb-aece-12bb97331649.png

一般文檔欄目:(可以對函數(shù)進(jìn)行說明性文檔的編寫)包括了函數(shù)的描述、實(shí)例程序、參數(shù)說明、高級注意事項(xiàng)4個(gè)部分。我們一般不進(jìn)行填寫。

d6518fd6-a29b-11eb-aece-12bb97331649.png

點(diǎn)擊上圖中的參數(shù)文檔: 參數(shù)文檔包含了這個(gè)函數(shù)的詳細(xì)的參數(shù)意義說明:如下圖:

d67c55b8-a29b-11eb-aece-12bb97331649.png

我們?nèi)绻麑⒁话阄臋n和參數(shù)文檔都填完整那么會出現(xiàn)什么情況呢? 你的函數(shù)有了一份像halcon算子一樣的說明文檔: 即選中一個(gè)算子,點(diǎn)擊F1出現(xiàn)的算子幫助文檔!

d6a29052-a29b-11eb-aece-12bb97331649.png

d6c0a326-a29b-11eb-aece-12bb97331649.png

完成上述所有步驟點(diǎn)擊確定按鈕即可生成函數(shù)

d729d8a0-a29b-11eb-aece-12bb97331649.png

d75d7f84-a29b-11eb-aece-12bb97331649.png

③運(yùn)行驗(yàn)證與函數(shù)更改操作

點(diǎn)擊F5運(yùn)行程序或者點(diǎn)擊F6單步運(yùn)行程序驗(yàn)證程序的準(zhǔn)確性。 當(dāng)F6單步調(diào)試到函數(shù)時(shí)可以點(diǎn)擊F7運(yùn)行到函數(shù)內(nèi)部執(zhí)行。點(diǎn)擊F8跳出函數(shù)執(zhí)行

如果想查看函數(shù)代碼,選中函數(shù),點(diǎn)擊鼠標(biāo)右鍵,選擇顯示函數(shù)即可查看代碼:

d78c5a0c-a29b-11eb-aece-12bb97331649.png

可以點(diǎn)擊紅色方框內(nèi)的后退按鈕退出當(dāng)前函數(shù)顯示 如下圖: 點(diǎn)擊藍(lán)色方框內(nèi)的 按鈕,打開函數(shù)編輯窗口(即上邊我們進(jìn)行函數(shù)名修改、接口參數(shù)變化的窗口)

d7a92b14-a29b-11eb-aece-12bb97331649.png

原文鏈接:https://blog.csdn.net/cashmood/article/details/105195235

編輯:jq

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

    關(guān)注

    128

    文章

    9249

    瀏覽量

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

    關(guān)注

    3

    文章

    4417

    瀏覽量

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

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73960

原文標(biāo)題:詳解Halcon自定義函數(shù)封裝方法(全網(wǎng)最詳細(xì))

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    如何為 Vision Five 2 編譯自定義 Linux 內(nèi)核?

    Vision Five 2 的 Debian 用戶指南只提供了半頁關(guān)于如何編譯自己的內(nèi)核的相當(dāng)稀疏的內(nèi)容。僅從該文檔中,我無法制作我的自定義內(nèi)核。那里的信息似乎相當(dāng)不完整。如果有人能提供一些
    發(fā)表于 02-24 07:44

    如何在TensorFlow Lite Micro中添加自定義操作符(2)

    reshape算子進(jìn)行說明,如何將reshape算子注冊到解析器中,接下來介紹如果我們想自定義一個(gè)算子需要干些什么。
    的頭像 發(fā)表于 12-26 10:53 ?1120次閱讀

    電能質(zhì)量監(jiān)測裝置可自定義監(jiān)測時(shí)段嗎?

    電能質(zhì)量監(jiān)測裝置普遍支持自定義監(jiān)測時(shí)段,現(xiàn)代中高端裝置還具備分時(shí)差異化監(jiān)測與靈活觸發(fā)能力,可按時(shí)間、事件或混合策略定制采集與存儲,兼顧精度、效率與存儲成本。 一、自定義監(jiān)測時(shí)段的核心實(shí)現(xiàn)方式 1.
    的頭像 發(fā)表于 12-10 16:49 ?1071次閱讀

    電能質(zhì)量在線監(jiān)測裝置的自定義監(jiān)測時(shí)段功能有哪些應(yīng)用場景?

    電能質(zhì)量在線監(jiān)測裝置的 自定義監(jiān)測時(shí)段功能 ,核心價(jià)值是通過 “按需配置監(jiān)測時(shí)間、采樣頻率和數(shù)據(jù)策略”,實(shí)現(xiàn)精準(zhǔn)監(jiān)測、資源優(yōu)化與數(shù)據(jù)針對性分析,其應(yīng)用場景覆蓋工業(yè)生產(chǎn)、商業(yè)運(yùn)營、電網(wǎng)運(yùn)維、特殊保障等
    的頭像 發(fā)表于 12-10 14:01 ?404次閱讀
    電能質(zhì)量在線監(jiān)測裝置的<b class='flag-5'>自定義</b>監(jiān)測時(shí)段功能有哪些應(yīng)用場景?

    無圖形界面模式下自定義檢查工具的應(yīng)用

    此前文章已介紹 ANSA 中的自定義檢查工具。本文將探討該功能在無圖形界面(No-GUI)模式下的應(yīng)用,旨在滿足標(biāo)準(zhǔn)化工作流程的需求,適用于需要高度自動化的前處理場景。通過集成自定義檢查,用戶可實(shí)現(xiàn)工作流程的高效自動化運(yùn)行。
    的頭像 發(fā)表于 11-30 14:13 ?581次閱讀
    無圖形界面模式下<b class='flag-5'>自定義</b>檢查工具的應(yīng)用

    riscv實(shí)現(xiàn)自定義指令并用qemu運(yùn)行

    利用qemu模擬硬件平臺,實(shí)現(xiàn)特定指令解析,同時(shí)寫裸機(jī)代碼來測試該指令的運(yùn)行情況。當(dāng)然,如果實(shí)現(xiàn)的很好,是需要修改riscv的gcc的,讓自己的擴(kuò)展指令加入。這里不做修改,后面會詳細(xì)描述細(xì)節(jié)。 自定義
    發(fā)表于 10-31 07:37

    采用匯編指示符來使用自定義指令

    具體實(shí)現(xiàn) 1、采用.word .half .dword等匯編指示符直接插入自定義指令,這種方法需要自己指定寄存器。其中.word為插入一個(gè)字的數(shù)據(jù)即32位,.half為插入半字即16位
    發(fā)表于 10-28 06:02

    如何在e203 SOC中添加自定義外設(shè)

    如何在E203 中添加自定義的外設(shè),困擾已久,以下是一個(gè)從別處借鑒而來的方法: 1、設(shè)計(jì)好自定義外設(shè)的RTL后,在其中添加ICB總線的握手協(xié)議和讀寫寄存器。 2、設(shè)計(jì)一個(gè)對外接口,用來設(shè)定
    發(fā)表于 10-20 10:38

    LOTO示波器自定義解碼功能—CANFD解碼

    LOTO示波器軟件更新了自定義解碼功能,并在bilibili上傳了演示視頻,視頻鏈接: https://www.bilibili.com/video/BV1wq3ezjEjQ
    的頭像 發(fā)表于 07-11 10:34 ?1052次閱讀
    LOTO示波器<b class='flag-5'>自定義</b>解碼功能—CANFD解碼

    大彩講堂:VisualTFT軟件如何自定義圓形進(jìn)度條

    VisualTFT軟件如何自定義圓形進(jìn)度條
    的頭像 發(fā)表于 07-07 17:10 ?1641次閱讀
    大彩講堂:VisualTFT軟件如何<b class='flag-5'>自定義</b>圓形進(jìn)度條

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?2129次閱讀
    KiCad 中的<b class='flag-5'>自定義</b>規(guī)則(KiCon 演講)

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?2397次閱讀

    如何使用自定義設(shè)置回調(diào)函數(shù)?

    你好,我正在嘗試編寫自己的自定義設(shè)置回調(diào)函數(shù),并使用 fastEnum=false。 是否有任何代碼示例或資料可供我參考? void CyU3PUsbRegisterSetupCallback
    發(fā)表于 05-21 06:11

    LabVIEW運(yùn)動控制(三):EtherCAT運(yùn)動控制器的高效加工指令自定義封裝

    LabVIEW高效加工指令自定義封裝
    的頭像 發(fā)表于 04-08 13:49 ?3628次閱讀
    LabVIEW運(yùn)動控制(三):EtherCAT運(yùn)動控制器的高效加工指令<b class='flag-5'>自定義</b><b class='flag-5'>封裝</b>

    如何添加自定義單板

    在開發(fā)過程中,用戶有時(shí)需要?jiǎng)?chuàng)建自定義板配置。本節(jié)將通過一個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g2l-test.conf為例進(jìn)行說明。
    的頭像 發(fā)表于 03-12 14:43 ?1350次閱讀