圓環內外圓毛刺(凸起)缺口(凹陷)檢測halcon

文章目錄

  • 處理要求
  • 處理方法1
    • 方法一思路
    • 方法一halcon源碼
    • 處理效果
  • 處理方法2
    • 方法二思路
    • 方法二halcon源碼
    • 處理效果

  • 博主寫作不容易,孩子需要您鼓勵
  • 萬水千山總是情 , 先點個贊行不行

處理要求

橢圓/圓環(產品易變形,為橢圓)內外圓毛刺(凸起)缺口(凹陷)檢測。
在這里插入圖片描述
在這里插入圖片描述

處理方法1

方法一思路

1、這是一個圓環產品檢測,我們可以通過產品區域與標準圓環進行比較得出不良區域。
2、為了避免誤檢、誤判,我們可以通過區域篩選閾值偏移的方法濾除干擾區域,可以將標準圓環放大消除一些圓度導致干擾。
3、根據不同用戶的精度要求,可以通過調節缺陷面積進行篩選。
4、方法1的代碼量有點多,但是更貼近工業現場使用。

方法一halcon源碼

dev_close_window ()
read_image (Image, 'C:/Users/22967/Desktop/圓環缺陷檢測/處理1.jpg')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)*********************方法一**************************
*****變量定義
* 卡尺測量參數
CenterRow:=0
CenterColumn:=0
CenterRadius:=0
* 灰度分割閾值偏移
ThresholdOffest:=80
* 缺陷區域面積閾值
NGArea:=50
*圓環內外偏移閾值
RadiusOffest:=5
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('C:/Users/22967/Desktop/圓環缺陷檢測', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])rgb1_to_gray (Image, GrayImage)*****圓環灰度篩選binary_threshold (GrayImage, Region, 'max_separability', 'dark', UsedThreshold)threshold (GrayImage, Region1, 0, UsedThreshold+ThresholdOffest)*分割連通域connection (Region1, ConnectedRegions)*選取圓環區域select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)*濾除圓環邊緣毛刺opening_circle (SelectedRegions, RegionOpening, 1.5)*****求圓環內外圓*求圓環外圓smallest_circle (RegionOpening, Row, Column, Radius)CenterRow[0]:=RowCenterColumn[0]:=ColumnCenterRadius[0]:=Radius*求圓環內圓fill_up (RegionOpening, RegionFillUp)difference (RegionFillUp, RegionOpening, RegionDifference)connection (RegionDifference, ConnectedRegions2)select_shape_std (ConnectedRegions2, SelectedRegions1, 'max_area', 70)smallest_circle (SelectedRegions1, Row1, Column1, Radius1)CenterRow[1]:=Row1CenterColumn[1]:=Column1CenterRadius[1]:=Radius1*****對內外圓進行卡尺測量*創建測量句柄create_metrology_model (MetrologyHandle)*設置卡尺測量參數add_metrology_object_circle_measure (MetrologyHandle, CenterRow, CenterColumn, CenterRadius, CenterRadius[0]/10, CenterRadius[0]/60, 1, 4, ['measure_distance','min_score'], [CenterRadius[0]/30,0.2], Indexnumb)*進行測量apply_metrology_model (Image, MetrologyHandle)*得到測量結果get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)*****求出標準圓環,進行缺陷檢測*突出部分gen_circle (Circle, Parameter[0], Parameter[1], Parameter[2]+RadiusOffest)gen_circle (Circle1, Parameter[3], Parameter[4], Parameter[5]-RadiusOffest)difference (Circle, Circle1, RegionDifference1)difference (SelectedRegions, RegionDifference1, RegionDifference2)*內凹部分gen_circle (Circle2, Parameter[0], Parameter[1], Parameter[2]-RadiusOffest)gen_circle (Circle3,Parameter[3], Parameter[4], Parameter[5]+RadiusOffest)difference (Circle2, Circle3, RegionDifference4)difference (RegionDifference4, SelectedRegions, RegionDifference3)*濾除噪點opening_circle (RegionDifference2, RegionOpening1, 1.5)opening_circle (RegionDifference3, RegionOpening2, 1.5)*合并缺陷區域union2 (RegionOpening1, RegionOpening2, RegionUnion)closing_circle (RegionUnion, RegionClosing, 3.5)connection (RegionClosing, ConnectedRegions1)*結果判斷area_center (ConnectedRegions1, Area, Row2, Column2)count_obj (ConnectedRegions1, Number)gen_empty_obj (EmptyObject)for Index1 := 1 to Number by 1if  (Area[Index1-1] > NGArea)select_obj (ConnectedRegions1, ObjectSelected, Index1)smallest_circle (ObjectSelected, Row3, Column3, Radius2)gen_circle (Circle4, Row3, Column3, Radius2)concat_obj (EmptyObject, Circle4, EmptyObject)endifendfordev_set_draw ('margin')dev_set_line_width (3)dev_display (Image)dev_display (EmptyObject)
*     stop()
endfor
clear_metrology_model (MetrologyHandle)

處理效果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

處理方法2

方法二思路

1、利用形態學方法進行缺陷檢測。
2、缺點就是對圓度不敏感。

方法二halcon源碼

dev_close_window ()
read_image (Image, 'C:/Users/22967/Desktop/圓環缺陷檢測/處理1.jpg')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
*********************方法二**************************
* 灰度分割閾值偏移
ThresholdOffest:=80
*外圓缺陷查找閾值
OutCircleTh:=200.5
*內圓缺陷查找閾值
InCircleTh:=100.5
*缺陷區域面積閾值
NGArea:=50
*噪點過濾閾值
DelNoise:=1.5* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('C:/Users/22967/Desktop/圓環缺陷檢測', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1*讀入圖片read_image (Image, ImageFiles[Index])rgb1_to_gray (Image, GrayImage)*二值化選取墊片區域binary_threshold (GrayImage, Region, 'max_separability', 'dark', UsedThreshold)threshold (GrayImage, Region1, 0, UsedThreshold+ThresholdOffest)connection (Region1, ConnectedRegions)select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)*外圓缺陷查找fill_up (SelectedRegions, RegionFillUp1)opening_circle (RegionFillUp1, RegionOpening, OutCircleTh)difference (RegionFillUp1, RegionOpening, RegionDifference5)*內圓缺陷查找difference (RegionFillUp1, SelectedRegions, RegionDifference6)connection (RegionDifference6, ConnectedRegions3)select_shape_std (ConnectedRegions3, SelectedRegions2, 'max_area', 70)opening_circle (SelectedRegions2, RegionOpening3, InCircleTh)difference (SelectedRegions2, RegionOpening3, RegionDifference7)*合并缺陷區域union2 (RegionDifference5, RegionDifference7, RegionUnion1)opening_circle (RegionUnion1, RegionOpening4, DelNoise)connection (RegionOpening4, ConnectedRegions4)*結果判斷area_center (ConnectedRegions4, Area1, Row4, Column4)gen_empty_obj (EmptyObject1)for Index1 := 1 to |Area1| by 1if  (Area1[Index1-1] > NGArea)select_obj (ConnectedRegions4, ObjectSelected, Index1)smallest_circle (ObjectSelected, Row3, Column3, Radius2)gen_circle (Circle4, Row3, Column3, Radius2)concat_obj (EmptyObject1, Circle4, EmptyObject1)endifendfor  *顯示結果dev_set_draw ('margin')dev_set_line_width (3)dev_display (Image)dev_display (EmptyObject1)stop()
endfor

處理效果

在這里插入圖片描述
在這里插入圖片描述

------------------------------------------------------------------------------------------分割線
------------------------------------------------------------------------------------------
  • 博主簡介:
  • 工業自動化上位機軟件工程師、機器視覺算法工程師、運動控制算法工程師。目前從業于智能制造自動化行業。 博主郵箱:2296776525@qq.com
  • 幫忙點個贊吧。哈哈。

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

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

相關文章

什么是單播、多播和廣播br

什么是單播、多播和廣播   “單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網絡節點之間通訊方式的術語。那么這些術語究竟是什么意思?區別何在&#…

【Oracle Database】數據庫控制文件管理

移動控制文件 [oraclewallet01 ~]$ sqlplus / as sysdba SQL> set line 200 SQL> col name for a60 SQL> select status,name from v$controlfile;STATUS NAME ------- ------------------------------------------------------------/u01/app/oracle/oradata/wallet…

ADO接口簡介

源地址:http://blog.csdn.net/xiaobai1593/article/details/7449151 參考: 1. 百度文庫:http://wenku.baidu.com/view/8e2e99ecf8c75fbfc77db230.html 2. CSDN:http://blog.csdn.net/augusdi/article/details/7005597 接口概述&am…

jquery模擬可輸入的下拉框

//頁面html <div id"select" class"select" ><ul><c:forEach items"${movieCityList}" var"cy" varStatus"st"><li><a href"javascript:void(0)" onclick"selectOption($(this))…

圓環同心度測量halcon

文章目錄處理要求處理源碼處理結果博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 處理要求 測量圓環同心度 處理源碼 read_image (Image, C:/Users/22967/Desktop/圖像Barrel 20201024/201024 手機行業 攝像頭檢測/Barrel 背光/Pic_2020_…

IP組播與組播協議

IP組播與組播協議 2008-4-27來源:不詳 作者:佚名 點擊&#xff1a;次在Internet上&#xff0c;多媒體業務諸如&#xff1a;流媒體&#xff0c;視頻會議和視頻點播等&#xff0c;正在成為信息傳送的重要組成部分。點對點傳輸的單播方式不能適應這一類業務傳輸特性--單點發送多點…

Spring Cloud的應用程序—上下文服務

2019獨角獸企業重金招聘Python工程師標準>>> Spring Boot對于如何使用Spring構建應用程序有一個看法&#xff1a;例如它具有常規配置文件的常規位置&#xff0c;以及用于常見管理和監視任務的端點。Spring Cloud建立在此之上&#xff0c;并添加了一些可能系統中所有…

Xtreme8.0 - Kabloom dp

Xtreme8.0 - Kabloom題目連接&#xff1a; https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/kabloom Description The card game Kabloom is played with multiple decks of playing cards. Players are dealt 2 n cards, face up and arranged in two …

視頻編碼中封裝格式RMVB,AVI,264

常規理解 封裝格式&#xff08;也叫容器&#xff09;&#xff0c;就是將已經編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個文件中&#xff0c;也就是說僅僅是一個外殼&#xff0c;或者大家把它當成一個放視頻軌和音頻軌的文件夾也可以。說得通俗點&#xff0c;視頻軌相當…

halcon圓環完整度檢測

文章目錄處理要求程序源碼處理結果博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 處理要求 查找好的圓環&#xff0c;檢測圓環不良 程序源碼 read_image (Image, F:/HALCON/圓環完整性檢測/6.bmp) rgb1_to_gray (Image, GrayImage) v…

《SAS編程與數據挖掘商業案例》學習筆記之十五

繼續《SAS編程與數據挖掘商業案例》讀書筆記&#xff0c;本次重點&#xff1a;輸出控制 主要內容包含&#xff1a;log窗體輸出控制、output窗體輸出控制、ods輸出控制 1.log窗體輸出控制 將日志輸出到外部文件 proc printto log "f:\data_model\book_data\chapt9\newlog.t…

[轉載]MATLAB?movie?函數動態繪圖

原文地址&#xff1a;MATLAB movie 函數動態繪圖作者&#xff1a;小霖cheeronMATLAB movie 函數動態繪圖 電影動畫的好處就是&#xff0c;運行一次可以多次播放&#xff0c;甚至可以直接生成avi文件&#xff0c;直接獨立與Matlab環境播放。這是其它三種動畫制作方法所不具備的。…

圓環劃痕檢測halcon

文章目錄處理要求處理源碼處理效果博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 處理要求 查找圓環缺陷 處理源碼 read_image (Image, F:/HALCON/圓環劃痕處理/10_33221_ba4582f0e88ec79.bmp) rgb3_to_gray (Image, Image, Image, Image…

多播(組播)原理分析

為什么要使用多播:網 卡從網絡上接收到目標物理地址對應的所有bit位都為1的數據報時&#xff0c;會收到這條消息并將其上傳給驅動程序&#xff0c;網卡的這種工作模式稱為廣播模式&#xff0c;網卡的缺省工作模式包含直接模式和廣播模式。利用這一特性&#xff0c;UDP&#xff…

iftop

在類Unix系統中可以使用top查看系統資源、進程、內存占用等信息。查看網絡狀態可以使用netstat、nmap等工具。若要查看實時的網絡流量&#xff0c;監控TCP/IP連接等&#xff0c;則可以使用iftop。一、iftop是什么&#xff1f;iftop是類似于top的實時流量監控工具。官方網站&…

sql 日記

--4.選擇雇用時間在1998-02-01到1998-05-01之間的員工姓名&#xff0c;job_id和雇用時間select last_name,job_id,hire_datefrom employeeswhere to_char(hire_date,yyyy-mm-dd) between 1998-02-01 and 1998-05-01 --5.選擇在20或50號部門工作的員工姓名和部門號select last_n…

CSS3中的變形處理

變形分類 縮放 使用scale方法來實現文字或圖像的縮放&#xff0c;在參數中指定縮放倍率。例如“scale&#xff08;0.5&#xff09;”&#xff0c;表示縮小50 傾斜 使用skew方法來實現文字或圖像的縮放&#xff0c;在參數中指定水平方向的傾斜角度與垂直方向的傾斜角度&#xf…

linux基本知識學習

LINUX黑洞 /dev/null 這是一個虛設的設備&#xff0c;俗稱“LINUX 黑洞”&#xff0c;任何對/dev/null的寫入都會成功&#xff0c; 但是數據會消失得無影無蹤&#xff0c;沒有任何反饋。所以經常把不想在屏幕 顯示的信息全部送到/dev/null&#xff0c;在shell腳本中用得較多。 …

日志OLAP:在SQL中使用UDF, lambda函數使用案例

場景 日志服務內置了20類SQL函數。面對用戶復雜的業務場景&#xff0c;例如使用json來沉淀業務數據&#xff0c;普通的SQL函數可能就無法滿足需求&#xff0c;需要一些用戶自定義處理邏輯。為了處理json類的業務數據&#xff0c;我們可以采用把json展開成多行的形式進行統計分析…

瓶子個數計數halcon

文章目錄處理要求處理方法一源碼效果方法二源碼效果博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 處理要求 查找紙箱內瓶子個數 處理方法一 源碼 dev_clear_window () dev_open_window (0, 0, 640*1.5, 512*1.5, black, WindowHandle…