HALCON示例程序circles.hdev邊界輪廓的圓形擬合

HALCON示例程序circles.hdev邊界輪廓的圓形擬合

小哥哥小姐姐覺得有用點個贊唄!
在這里插入圖片描述

示例程序源碼(加注釋)

  • 讀入圖片
    read_image (Image, ‘double_circle’)
  • 窗口初始化
    dev_close_window ()
    get_image_size (Image, Width, Height)
    dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
  • 將區域分割出來并且去除邊界
  • 快速閾值分割
    fast_threshold (Image, Region, 0, 120, 7)
  • 使用形態學運算來計算區域的邊界,這里就是將圖片邊界提取出來
    boundary (Region, RegionBorder, ‘inner’)
  • 剪切最小外接矩形內縮的區域
    函數原型clip_region_rel(Region : RegionClipped : Top, Bottom, Left, Right : )
    Region :輸入區域;RegionClipped :輸出區域縮小的區域;Top, Bottom, Left, Right:內縮量
    外接矩形內縮后與原有外接矩形形成一個矩形環,就是將區域減去這個矩形環生成的區域。

    clip_region_rel (RegionBorder, RegionClipped, 5, 5, 5, 5)
  • 使用半徑為2.5的圓形元素對區域進行膨脹
    dilation_circle (RegionClipped, RegionDilation, 2.5)
  • 減少圖像定義域
    reduce_domain (Image, RegionDilation, ImageReduced)

提取邊緣

  • edges_sub_pix - 使用Deriche,Lanser,Shen或Canny過濾器提取亞像素精確邊緣
    函數原型:edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )
    Image :輸入圖像;Edges :輸出的邊緣;Alpha:濾波器寬度;
    Low:滯后閾值操作的閾值下限;High: 滯后閾值操作的閾值上限

    edges_sub_pix (ImageReduced, Edges, ‘canny’, 2, 20, 60)
  • segment_contours_xld - 分割XLD輪廓為線段和圓弧或橢圓弧
    函數原型;segment_contours_xld(Contours : ContoursSplit :
    Mode, SmoothCont, MaxLineDist1, MaxLineDist2 : )
    Contours :輸入輪廓;ContoursSplit:分割后的輪廓;Mode:輪廓分割模式;
    SmoothCont:用于平滑輪廓的點數;MaxLineDist1:輪廓與近似線之間的最大距離(第一次迭代);
    MaxLineDist2 :輪廓與近似線之間的最大距離(第二次迭代)

    segment_contours_xld (Edges, ContoursSplit, ‘lines_circles’, 5, 4, 3)
  • 對區域元素進行計數
    count_obj (ContoursSplit, Number)
    顯示
    dev_display (Image)
    dev_set_draw (‘margin’)
    dev_set_color (‘white’)
    dev_update_window (‘off’)
    for I := 1 to Number by 1
    • 通過索引號選取數組內的指定元素
      select_obj (ContoursSplit, ObjectSelected, I)
    • 返回XLD輪廓的全局屬性值’cont_approx’表示:對于’cont_approx’=-1,輪廓近似線段;
    • ‘cont_approx’=0,曲線近似橢圓;‘cont_approx’=1,曲線近似圓弧。
      get_contour_global_attrib_xld (ObjectSelected, ‘cont_approx’, Attrib)
    • 圓弧線段進行圓形擬合
      if (Attrib > 0)
      • fit_circle_contour_xld 對XLD輪廓進行圓弧擬合。
        fit_circle_contour_xld (ObjectSelected, ‘ahuber’, -1, 2, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
      • 繪制擬合出來的圓
        gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), ‘positive’, 1.0)
        dev_display (ContCircle)
        endif
        endfor
  • 顯示設置與顯示
    dev_set_colored (12)
    dev_set_line_width (3)
    dev_display (ContoursSplit)

處理思路

這個例子是集邊界提取、邊界分割、邊界擬合于一個程序,進行了實際的講解。這個例子當中的關于xld操作的算子以后我們做邊界提取、測量時會用到很多。

后記

大家有什么問題可以向我提問哈,我看到了第一時間回復,希望在學習的路上多多結交良師益友。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255266.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255266.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255266.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

asp.net 微信企業號辦公系統-流程設計--保存與發布

如果流程未設計完時可以先保存,以后再打開接著設計。點擊工具欄上的保存按鈕即可保存當前流程設計: 如果下次要接著設計,則可以打開該流程繼續設計: 如果流程設計完成,可以點擊安裝按鈕來發布流程,流程安裝成功后即加入…

search-guard 在 Elasticsearch 2.3 上的運用

uni3orns 2016/06/23 11:09Author:uni3orns參考內容:kibana.logstash.es/content/ela…groups.google.com/forum/#!for…github.com/floragunnco…此文章基于以下軟件版本,不同版本可能略有差異:elasticsearch 2.3.3search-guard…

HALCON示例程序class_2dim_sup.hdev使用二維像素分類對圖像進行分割

HALCON示例程序class_2dim_sup.hdev使用二維像素分類對圖像進行分割 示例程序源碼(加注釋) 定義Interactive并賦值,0:固定框;1:手工繪制框。 Interactive : 0 讀入圖片 read_image (Image, ‘ic’) 關閉…

sys

sys.argv 命令行參數List,第一個元素是程序本身路徑 sys.exit(n) 退出程序,正常退出時exit(0) sys.version 獲取Python解釋程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模塊的搜索路徑,初…

修改環境變量

在path變量后添加,對變量長度無限制,需要重啟后生效reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;c:\newpath;whatever" /freg save "HKLM\SYSTEM\CurrentCont…

Canny邊緣檢測算法原理及其VC實現詳解(二)

3、 Canny算法的實現流程 由于本文主要目的在于學習和實現算法,而對于圖像讀取、視頻獲取等內容不進行闡述。因此選用OpenCV算法庫作為其他功能的實現途徑(關于OpenCV的使用,作者將另文表述)。首先展現本文將要處理的彩色圖片。 …

IDEA注冊jar包使用和常用插件

IDEA注冊jar包使用 點擊獲取下載地址或生成注冊碼 一、安裝完成后,先不啟動,首先如下圖修改相關的地方。 二、啟動IDEA,并且激活IDEA IDEA插件倉庫 IntelliJ IDEA Plugins 一、Maven Helper 我一般用這款插件來查看maven的依賴樹。在不使用此…

HALCON示例程序class_2dim_unsup.hdev基于二維直方圖的聚類分類

HALCON示例程序class_2dim_unsup.hdev基于二維直方圖聚類分類的顏色分類 示例程序源碼(加注釋) 讀入圖片 read_image (Image, ‘patras’)關閉窗口 dev_close_window ()得到圖片尺寸大小 get_image_size (Image, Width, Height)打開窗口 dev_open_wind…

Android Monkey壓力測試

一. JAVA環境的搭建 安裝jdk-8u151-windows-x64,可以到官網或者應用中心下載.JAVA環境變量的搭建: 在"我的電腦"-"屬性"-"高級"-"環境變量"中,點擊新建,填寫變量名為JAVA_HOME,變量值為JAVA安裝的路徑.在系統變量中找到Path,點擊編輯,…

bzoj 4517: [Sdoi2016]排列計數

4517: [Sdoi2016]排列計數 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 637 Solved: 396[Submit][Status][Discuss]Description 求有多少種長度為 n 的序列 A,滿足以下條件:1 ~ n 這 n 個數在序列中各出現了一次若第 i 個數 A[i] 的值為 i&#x…

idea compare功能 之一次bug修復

一次bug修復 最近開發完了一套單點系統,jenkins打包上傳到服務器就出問題, 可以啟動但是不能正常工作。 首先想到的是環境不一樣, 于是把jenkins的jdk和maven都調整和本機大版本相同。 當然肯定是沒卵用的, 于是查看日志 Class pa…

黑白CCD成像不理想,如何補色

黑白CCD成像不理想,如何補色

HALCON示例程序class_ndim_box.hdev基于多通道圖像的分類

HALCON示例程序class_ndim_box.hdev基于多通道圖像的分類 示例程序源碼(加注釋) 讀入圖片 read_image (Image, ‘ic’)創建一個新的分類器 create_class_box (ClassifHandle)獲取圖片大小 get_image_size (Image, Width, Height)關閉窗口 dev_close_wi…

gcc編譯系統

一、 C語言編譯過程 C語言的編譯過程可分為四個階段: 1、預處理(Preprocessing) 對源程序中的偽指令(即以#開頭的指令)和特殊符號進行處理的過程。 偽指令包括:1)宏定義指令; 2&…

自制反匯編逆向分析工具 迭代第六版本 (五)

本工具從最初版的跳轉分布圖只為了更直觀地分析反匯編代碼的分支結構,第三版開始對直觀圖進行逆向分支代碼的輸出,第四版對分支輸出策略的一些探索,第五版結合之前的探索進行改進。第六版在現在功能的基礎上進行增強,利用第六版&a…

模型搜索 及 輪廓搜索 的原理

模型搜索 及 輪廓搜索 的原理

Linux中設置vim自動在運算符號兩邊加上空格

vim中設置自動在-之類的運算符號左右兩邊加上空格。原版的vim不帶這個功能,寫出的代碼例如zxy,不美觀,很多編譯器(如VS)能夠自動在符號兩邊加上空格,如z x y,看起來比較美觀。 只要在.vimrc里…

HALCON示例程序class_ndim_norm.hdev基于多通道圖像的分類

HALCON示例程序class_ndim_norm.hdev基于多通道圖像的分類 示例程序源碼(加注釋) 讀入圖片 read_image (Image, ‘ic’)得到圖片大小 get_image_size (Image, Width, Height)關閉窗口 dev_close_window ()根據圖片大小打開窗口 dev_open_window (0, 0,…

centos7搭建FTP服務器

1.   使用 yum 安裝 vsftpd:yum install -y vsftpd 2.  啟動 VSFTPD:systemctl start vsftpd.service 3.  啟動后可監聽到21端口:netstat -nltp | grep 21 4.  配置FTP權限:(vsftpd.conf,修改前先備…

[HDOJ2586]How far away?(最近公共祖先, 離線tarjan, 并查集)

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid2586 這題以前做過…現在用tarjan搞一發…竟然比以前暴力過的慢………… 由于是離線算法,需要Query來保存查詢數據,Ans來保存結果。最后輸出的時候按照idx的順序輸出,所以胡搞…