在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

    關注

    128

    文章

    8517

    瀏覽量

    144817
  • 函數
    +關注

    關注

    3

    文章

    4371

    瀏覽量

    64215
  • 代碼
    +關注

    關注

    30

    文章

    4887

    瀏覽量

    70266

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    HarmonyOS應用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統默認鍵盤的解決方案,可實現鍵盤個性化交互。允許用戶結合業務需求與操作習慣,對按鍵布局進行可視化重構、設置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護層面,自定義鍵盤可以
    的頭像 發表于 06-05 14:19 ?306次閱讀

    如何使用自定義設置回調函數

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

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

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

    如何添加自定義單板

    在開發過程中,用戶有時需要創建自定義板配置。本節將通過一個實例講解用戶如何創建屬于自己的machine,下面以g2l-test.conf為例進行說明。
    的頭像 發表于 03-12 14:43 ?478次閱讀

    如何快速創建用戶自定義Board和App工程

    概述自HPM_SDKv1.7.0發布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創建自定義的Board和App工程。user_template是用戶模板工程,用戶
    的頭像 發表于 02-08 13:38 ?408次閱讀
    如何快速創建用戶<b class='flag-5'>自定義</b>Board和App工程

    Altium Designer 15.0自定義元件設計

    電子發燒友網站提供《Altium Designer 15.0自定義元件設計.pdf》資料免費下載
    發表于 01-21 15:04 ?0次下載
    Altium Designer 15.0<b class='flag-5'>自定義</b>元件設計

    think-cell:自定義think-cell(四)

    C.5 設置默認議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片上的其他形狀,例如標題或圖片。通過將此自定義布局添加到模板,您可以為整個組織
    的頭像 發表于 01-13 10:37 ?450次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

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

    本章介紹如何自定義 think-cell,即如何更改默認顏色和其他默認屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個部分中進行討論。 第五部分 C.5 設置默認議程幻燈片
    的頭像 發表于 01-08 11:31 ?617次閱讀
    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 ?1095次閱讀
    EtherCAT運動控制器PT/PVT實現用戶<b class='flag-5'>自定義</b>軌跡規劃

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

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

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

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

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

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

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

    請問如何使用庫中的HF相關函數發送自定義AT指令?
    發表于 06-17 07:43
    主站蜘蛛池模板: 国产男女交性视频播放免费bd | 亚洲毛片基地4455ww | 色噜噜亚洲精品中文字幕 | 中国色老头| 国产一区二区三区在线观看影院 | 色爱综合区 | 天天射天天射天天射 | 天天做天天爱夜夜爽 | 成人在线亚洲 | 香焦视频在线观看黄 | 最新合集丨新片速递 | 手机看片国产福利 | 亚洲一卡2卡4卡5卡6卡在线99 | 狠狠色网站| 国产成人综合自拍 | 黄色毛片大全 | 色极影院 | 婷婷中文字幕 | 国产高清色视频免费看的网址 | 成人的天堂视频一区二区三区 | 国产成人夜间影院在线观看 | 日本老师xxxxxxxxx79 | 精品久草| 亚洲成人三级 | 高清一级片 | 亚洲欧美日韩特级毛片 | 日本欧美一区二区三区视频 | 夜夜狠操 | 尤物视频黄 | 1024国产手机视频基地 | 国产三级日本三级韩国三级在线观看 | 国产精品久久久久久久久福利 | 在线视频影院 | 色橹橹| 亚洲 欧美 精品 | 欧美一区二区三区不卡免费观看 | 黄网站视频观看免费 | 高清不卡免费一区二区三区 | 色婷婷精品综合久久狠狠 | 久久精品国产精品亚洲婷婷 | 国产视频首页 |