色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全網最詳細解析Halcon自定義函數封裝方法

新機器視覺 ? 來源:CSDN技術社區 ? 作者:小邢同學 ? 2021-04-22 11:01 ? 次閱讀

有網友說不太清楚這個halcon函數的封裝方法。今天寫個教程帖子,大家一起進步分享。

1、名詞解釋

算子:
指Halcon中最基礎、最底層的函數(即你看不到它的代碼實現),一個算子只有一句話,例如threshold算子。

函數:
由多個算子組合成的函數。其特點是,可以通過鼠標右鍵單擊“顯示函數”打開。如下圖:

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

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

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

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

2、例子介紹

1、處理原圖與任務:

要求求亮區外圓半徑大小。

2、代碼與解析:

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

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

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

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

分割連通域 connection (Region, ConnectedRegions)

使用特征篩選去掉小面積區域的干擾 select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 5000, 1000000000)

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

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

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

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

顯示相關結果 dev_display (Image) dev_display (Circle) disp_message (WindowHandle, ‘圓環半徑: ‘+Radius, ‘window’, 50, 50, ‘black’, ‘true’)

3、Halcon函數封裝方式

Halcon的函數創建分為以下幾個步驟:1、明確需求,要封裝的函數要實現什么功能 2、選取函數部分進行函數創建,更改函數接口,即更改輸入輸出變量 3、運行驗證與函數更改操作

①明確需求

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

我們看代碼一共分為三個部分:1.準備階段:讀入圖片、打開窗口、預覽等工作。 2.處理階段:進行圖像處理,求取結果 3.顯示階段:對結果進行顯示 如下圖:

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

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

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

②選取函數部分進行函數創建,更改函數接口

選中處理階段函數,右鍵,點擊“創建新函數”。如下圖所示:

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

之后顯示頁面如下:

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

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

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

圖標參數含義:即圖片、區域、Xld輪廓等圖形變量。 變量參數含義:指我們在程序中用得到的整形、浮點型、字符串、數組等變量

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

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

點擊移除后:

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

也可以通過選中函數后點擊“上移”、“下移”更改變量順序。

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

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

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

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

點擊上圖中的參數文檔: 參數文檔包含了這個函數的詳細的參數意義說明:如下圖:

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

我們如果將一般文檔和參數文檔都填完整那么會出現什么情況呢? 你的函數有了一份像halcon算子一樣的說明文檔: 即選中一個算子,點擊F1出現的算子幫助文檔!

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

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

完成上述所有步驟點擊確定按鈕即可生成函數

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

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

③運行驗證與函數更改操作

點擊F5運行程序或者點擊F6單步運行程序驗證程序的準確性。 當F6單步調試到函數時可以點擊F7運行到函數內部執行。點擊F8跳出函數執行

如果想查看函數代碼,選中函數,點擊鼠標右鍵,選擇顯示函數即可查看代碼:

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

可以點擊紅色方框內的后退按鈕退出當前函數顯示 如下圖: 點擊藍色方框內的 按鈕,打開函數編輯窗口(即上邊我們進行函數名修改、接口參數變化的窗口)

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

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 封裝
    +關注

    關注

    127

    文章

    7941

    瀏覽量

    143093
  • 函數
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62740
  • 代碼
    +關注

    關注

    30

    文章

    4802

    瀏覽量

    68736

原文標題:詳解Halcon自定義函數封裝方法(全網最詳細)

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認顏色和其他默認屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個部分中進行討論。 第五部分 C.5 設置默認議程幻燈片
    的頭像 發表于 01-08 11:31 ?75次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    創建自定義的基于閃存的引導加載程序(BSL)

    電子發燒友網站提供《創建自定義的基于閃存的引導加載程序(BSL).pdf》資料免費下載
    發表于 09-19 10:50 ?0次下載
    創建<b class='flag-5'>自定義</b>的基于閃存的引導加載程序(BSL)

    用TINA V9進行電路仿真,自定義函數按鈕是灰色的,無法輸入是哪里的問題?

    最近用TINA V9進行電路仿真,激勵想使用自定義函數,但是發現自定義函數按鈕是灰色的,無法輸入,是什么地方設置不對嗎?
    發表于 08-21 08:17

    EtherCAT運動控制器PT/PVT實現用戶自定義軌跡規劃

    EtherCAT運動控制器PT/PVT實現用戶自定義軌跡規劃。
    的頭像 發表于 08-15 11:49 ?660次閱讀
    EtherCAT運動控制器PT/PVT實現用戶<b class='flag-5'>自定義</b>軌跡規劃

    NVIDIA NeMo加速并簡化自定義模型開發

    如果企業希望充分發揮出 AI 的力量,就需要根據其行業需求量身定制的自定義模型。
    的頭像 發表于 07-26 11:17 ?772次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b>模型開發

    Labview實現自定義四維云圖(三維曲面圖像)可視化顯示

    函數基礎上,對其中的數據與程序進行修改,實現了曲面云圖顏色效果的自定義配置,提升了Labview的可視化應用性。本文以Labview自帶的“繪圖幫助(向量)”vi作為對象,詳細說明具體配置方法
    發表于 07-16 10:52 ?57次下載

    如何在IDF框架中使用自定義的靜態庫和動態庫?

    基于商業需要,我們需要在 ESP-IDF v4.0-rc 這個版本的IDF中開發與使用自定義庫,有如下問題請協助: 1如何利用IDF框架編寫自定義靜態庫和動態庫? 2如何在IDF框架中使用自定義的靜態庫和動態庫? 有
    發表于 06-25 07:57

    ESP32如何使用庫中的HF相關函數發送自定義AT指令?

    請問如何使用庫中的HF相關函數發送自定義AT指令?
    發表于 06-17 07:43

    HarmonyOS開發案例:【 自定義彈窗】

    基于ArkTS的聲明式開發范式實現了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實現自定義彈窗
    的頭像 發表于 05-16 18:18 ?1391次閱讀
    HarmonyOS開發案例:【 <b class='flag-5'>自定義</b>彈窗】

    TSMaster 自定義 LIN 調度表編程指導

    LIN(LocalInterconnectNetwork)協議調度表是用于LIN總線通信中的消息調度的一種機制,我們收到越來越多來自不同用戶希望能夠通過接口實現自定義LIN調度表的需求。所以在
    的頭像 發表于 05-11 08:21 ?702次閱讀
    TSMaster <b class='flag-5'>自定義</b> LIN 調度表編程指導

    HarmonyOS開發案例:【UIAbility和自定義組件生命周期】

    本文檔主要描述了應用運行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發表于 05-10 15:31 ?1281次閱讀
    HarmonyOS開發案例:【UIAbility和<b class='flag-5'>自定義</b>組件生命周期】

    HarmonyOS實戰開發-深度探索與打造個性化自定義組件

    的時候,執行build方法渲染系統組件,如果子組件為自定義組件,則創建自定義組件的實例。在執行build()函數的過程中,框架會觀察每個狀態變量的讀取狀態,將保存兩個map: 狀態變量
    發表于 05-08 16:30

    HarmonyOS開發實例:【自定義Emitter】

    使用[Emitter]實現事件的訂閱和發布,使用[自定義彈窗]設置廣告信息。
    的頭像 發表于 04-14 11:37 ?1018次閱讀
    HarmonyOS開發實例:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節筆者簡單介紹一下自定義組件的語法規范。
    的頭像 發表于 04-08 10:17 ?658次閱讀

    LabView的Mathscript調用用戶自定義函數,搜索路徑無效

    mathscript的搜索路徑換了對應文件夾但是還是識別不出來自定義函數,只有在原來默認文件夾才行,甚至在這個搜索路徑里把原來默認的LabView Data文件夾這個路徑刪了也沒用
    發表于 03-14 21:24
    主站蜘蛛池模板: 99re1久久热在线播放| 国产精品久久久亚洲偷窥女厕| 国产亚洲精品成人a在线| 亚洲 欧美 日韩 卡通 另类| 黑人干日本美女| 97视频在线免费播放| 人妻超级精品碰碰在线97视频| 国产精品97久久AV麻豆| 一级毛片免费下载| 欧美日韩亚洲综合2019| 国产高潮久久精品AV无码 | 黑人干日本美女| 91亚洲精品福利在线播放| 日韩精品亚洲专区在线影院| 果冻传媒完整免费网站在线观看 | 9966在线观看免费高清电影| 色婷婷99综合久久久精品| 久久99国产综合精品AV蜜桃| 白人大战34厘米黑人BD| 亚洲精品一线二线三线无人区 | 精品欧美小视频在线观看| 99视频国产在线| 亚洲欧洲日产国码久在线| 欧美午夜a级精美理论片| 黄色aa大片| 成人午夜精品久久久久久久秋霞| 亚洲视频区| 日韩精品一区二区亚洲AV观看| 久久6699精品国产人妻| 怪物高h粗暴无尽| 8050午夜二级一片| 亚洲国产综合人成综合网站00| 欧美video巨大粗暴18| 护士一级片| 国产超碰AV人人做人人爽| 131美女爱做视频午夜剧场| 翁用力的抽插| 披黑人猛躁10次高潮| 久久香蕉国产线看观看精品| 国产精品日韩欧美一区二区三区| 99精品在线播放|