C#Halcon從零開發_Day14_AOI缺陷檢測策略1_Bolb分析+特征分析_餅干破損檢測

一、引言

*缺陷檢測策略1:Blob分析+特征分析


*Blob分析:閾值分割、開閉運算

(1) 圖像預處理

  • 目的:增強目標與背景的對比度,抑制噪聲。

  • 常用算子

    • threshold():通過閾值分割將圖像轉換為二值圖像。

    • mean_image()?/?gauss_filter():平滑圖像,減少噪聲。

    • invert_image():反轉圖像(如目標為暗色時)。

(2) 連通區域檢測

  • 目的:將二值圖像中的連通像素分組為Blob。

  • 關鍵算子

    • connection():根據像素連通性(4鄰域或8鄰域)分割Blob。

    • select_shape():根據特征(面積、圓度、長寬比等)篩選目標Blob。

(3) Blob特征提取

  • 目的:量化Blob的幾何和形態特征,用于后續分析。

  • 常用特征

    • 面積(Area):Blob的像素數量。

    • 質心(Row, Column):Blob的中心坐標。

    • 長寬比(Aspect Ratio):Blob的最小外接矩形的寬度與高度比。

    • 圓度(Roundness):衡量Blob接近圓形的程度。

    • 方向(Orientation):Blob的最小外接矩形的旋轉角度。

(4) Blob分類與篩選

  • 目的:根據特征過濾或分類Blob。

  • 常用方法

    • 范圍篩選:如?select_shape(Regions, SelectedRegions, 'area', 'and', 100, 1000)?篩選面積在100到1000之間的Blob。

    • 分類:如根據圓度區分圓形和矩形物體。

(5) 結果可視化與輸出

  • 目的:顯示Blob分析結果或導出數據。

  • 常用操作

    • dev_display():顯示Blob的輪廓或填充區域。

    • count_obj():統計Blob數量。

    • area_center():獲取Blob的面積和質心坐標。


*特征分析: 空洞面積、矩形度等

(1) 幾何特征

  • 描述目標的基本形狀和位置:

    • 面積(Area):目標區域的像素數量。

    • 質心(Row, Column):目標的中心坐標。

    • 最小外接矩形(Bounding Box):目標的最小外接矩形的尺寸和方向。

    • 長寬比(Aspect Ratio):外接矩形的寬度與高度比。

    • 圓度(Roundness):衡量目標接近圓形的程度(值越接近1,越接近圓形)。

    • 方向(Orientation):目標的最小外接矩形的旋轉角度。

    • 凸性(Convexity):目標區域與其凸包的比值。

(2) 形態特征

  • 描述目標的復雜形狀和邊緣特性:

    • 緊密度(Compactness):面積與周長平方的比值(值越小,形狀越復雜)。

    • 矩形度(Rectangularity):目標面積與其最小外接矩形面積的比值。

    • 孔洞數量(Holes):目標區域內部的孔洞數量。

    • 邊緣長度(Contour Length):目標輪廓的像素長度。

(3) 灰度/紋理特征

  • 描述目標的灰度分布或紋理模式:

    • 灰度均值(Mean Gray Value):目標區域的平均灰度值。

    • 灰度方差(Gray Value Variance):目標區域的灰度方差。

    • 紋理特征:通過灰度共生矩陣(GLCM)提取的對比度、熵、能量等特征。

    • 梯度特征:邊緣強度、梯度方向等。

(4) 高級特征

  • 基于模型或學習的特征:

    • 形狀描述符:如Zernike矩、Hu矩等。

    • 深度學習特征:通過預訓練的深度學習模型提取的高層特征(需結合Halcon的深度學習模塊)。


*重要算子ared_heoles ? ?rectangularity

二、分析餅干檢測

需要對餅干的破損進行檢測,破損會導致空洞面積大以及外圍矩形度受損

*D:/Program Files/MVTec/Data/HALCON-23.05-Progress/examples/images/food
for Index := 1 to 24 by 1
? ? read_image (Image, 'food/hazelnut_wafer_'+Index$'.02')
? ? *Blob分析-對圖片二值化閾值分割
? ? binary_threshold (Image, Region, 'max_separability', 'light', UsedThreshold)
? ? *Blob分析-對區域進行開運算 ? --先腐蝕后膨脹以去除雜質
? ? opening_circle (Region, RegionOpening, 8)
? ? *特征分析1-檢測空洞的面積
? ? area_holes (RegionOpening, Area)
? ? *特征分析2-檢測區域矩形度
? ? rectangularity (RegionOpening, Rectangularity)
? ? if(Area>600 or Rectangularity<0.9)
? ? ? ? dev_get_window (WindowHandle)
? ? ? ? set_display_font (WindowHandle, 16, 'mono', 'false', 'false')
? ? ? ? dev_disp_text ('NG', 'window', 'top', 'left', 'red', ['box','box_color'], ['true','blue'])
? ? ? ? stop()
? ? else ? ? ??
? ? ? ? dev_get_window (WindowHandle)
? ? ? ? set_display_font (WindowHandle, 16, 'mono', 'false', 'false')
? ? ? ? dev_disp_text ('OK', 'window', 'top', 'left', 'green', ['box','box_color'], ['true','blue'])
? ? ? ? stop()
? ? endif
endfor

最終效果為:

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

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

相關文章

18年磨一劍!開利科技啟動數字化增量投資新時代

當傳統營銷陷入流量困局&#xff0c;當數字化轉型變成"面子工程"&#xff0c;廣州開利網絡用18年技術積淀給出新答案——"蚓鏈數字化生態營銷系統"&#xff0c;讓企業不再為數字化而數字化&#xff0c;而是通過數字化實現利潤增長&#xff01; 核心亮點&am…

65-Oracle Undo機制

前一期看了Oracle在redo上保持事務前滾的一致性&#xff0c;同樣Oracle在Undo的管理機制也是現代事務型數據庫的工程典范。核心在于通過多版本并發控制&#xff08;MVCC&#xff09;技術&#xff0c;在保障數據一致性與提升系統性能之間實現精妙平衡。Undo機制構建了原子事務的…

【ESP32攝像頭開發實例】-實現遙控視頻小車

ESP32-CAM實現遙控視頻小車 文章目錄 ESP32-CAM實現遙控視頻小車1、硬件準備2、代碼實現3、代碼解析4、程序下載到開發板在本文中,將詳細介紹如何使用ESP32-CAM制作一輛Wi-Fi遠程控制的小車。 1、硬件準備 在開始這個項目之前,我們將強調用于構建機器人的最重要的特性和組件…

圖片加載優化(縮略圖)

縮略圖 系統目前的問題&#xff1a;首頁直接加載原圖&#xff0c;原圖文件通常比縮略圖大數倍甚至數十倍&#xff0c;不僅導致加載時間長&#xff0c;還會造成大量流量浪費。 解決方案&#xff1a;上傳圖片時&#xff0c;同時生成一份較小尺寸的縮略圖。用戶瀏覽圖片列表時加…

GO語言---數組

文章目錄 數組的基本特性數組的聲明和初始化數組元素的訪問和操作數組遍歷多維數組數組的長度和容量數組作為函數參數數組與切片的區別注意 數組是Go語言中最基本的數據結構之一&#xff0c;它是一組相同類型元素的固定長度序列。 數組的基本特性 1、固定長度&#xff1a;數組…

7.5.3_1處理沖突的方法-拉鏈法

知識總覽&#xff1a; 拉鏈法&#xff1a; 開始散列表中沒有存儲任何數據元素即散列地址上的元素是空的&#xff0c;散列地址可以視為鏈表的頭指針&#xff0c;即沒有插入任何元素前鏈表的頭指針是空的。一個散列地址對應一個鏈表&#xff0c;散列地址上實際沒有存數據元素&am…

鴻蒙運動項目開發:項目運行環境切換器

##鴻蒙核心技術##運動開發# 在開發鴻蒙運動項目時&#xff0c;管理不同運行環境&#xff08;如開發環境、測試環境、生產環境&#xff09;是一個常見的需求。通過合理地切換運行環境&#xff0c;開發者可以方便地進行調試、測試和部署。本文將介紹如何實現一個項目運行環境切換…

Linux內核中安全創建套接字:為何inet_create未導出及正確替代方案

引言 在Linux內核開發中,當驅動程序需要創建網絡套接字時,開發者常會遇到一個關鍵問題:核心函數inet_create(負責初始化IPv4套接字)并未導出到內核符號表。本文深入剖析這一設計決策背后的邏輯,并提供驅動程序安全創建套接字的實踐方案。 一、inet_create未導出的深層原…

63、不同路徑II

題目 解答&#xff1a; 初始化和特殊情況比較麻煩的dp obstacleGrid(0,0)1的&#xff0c;直接return 0即可。入口都被堵住了還怎么走。 mn1情況&#xff0c;直接判斷 第一行初始化&#xff1a;dp[1][0]->dp[i][0] 碰到有障礙物的&#xff0c;從當前格子開始到末尾全部置…

wx小程序登錄設置角色

背景。pc端登錄后在訪問業務鏈接時可以根據固定獲取用戶的方法LoginUser user LoginHelper.getLoginUser(); 獲取到用戶信息。但wx端登錄后無法獲取。原因處在登陸時對用戶信息的設置方面pc端和小程序端登錄沒有使用相同的登錄方法。排除得知wx端小程序登錄時沒有設置角色。所…

MySQL5.7 慢查詢SQL語句集合

文章目錄 1. 按平均執行時間排序的慢查詢2. 按總執行時長排序的慢查詢3. MySQL 5.7 慢查詢配置檢查4. 掃描行數分析&#xff08;找出全表掃描&#xff09;5. 高頻執行的慢查詢6. 當前正在執行的查詢7. 慢查詢統計匯總8. 表結構和索引分析8.1 表索引詳情查詢8.2 表大小統計 1. 按…

MySQL學習(1)——基礎庫操作

歡迎來到博主的專欄:MySQL學習 博主ID:代碼小豪 文章目錄 數據庫原理基礎庫操作增刪數據庫數據庫編碼與校驗規則驗證不同的校驗規則對于庫中數據的影響 備份與恢復數據庫 數據庫原理 mysql版本:mysql8.0 操作系統:ubuntu22.4 為了減少由于環境配置以及權限限制帶來的使用問題&…

C++法則12:右值引用的核心目的:支持移動語義(Move Semantics)

C法則12&#xff1a;右值引用的核心目的&#xff1a;支持移動語義&#xff08;Move Semantics&#xff09; 右值引用&#xff08;Rvalue Reference&#xff09;是C11引入的最重要特性之一&#xff0c;其主要設計目的就是支持移動語義&#xff08;Move Semantics&#xff09;。 …

【LLM學習筆記4】使用LangChain開發應用程序(上)

目錄 前言一、模型、提示和解析器&#xff08;model、prompt、parsers&#xff09;二、儲存三、模型鏈四、基于文檔的問答1.使用向量存儲查詢2. 結合表征模型和向量存儲使用檢索問答鏈回答問題 前言 在前面兩部分&#xff0c;我們分別學習了大語言模型的基礎使用準則&#xff…

Negative Contrastive Estimation Negative Sampling

1. 基本概念與問題背景 1.1 大規模分類問題 在自然語言處理中&#xff0c;給定上下文 c c c預測單詞 w w w的條件概率為&#xff1a; P ( w ∣ c ) exp ? ( s θ ( w , c ) ) ∑ w ′ ∈ V exp ? ( s θ ( w ′ , c ) ) P(w|c) \frac{\exp(s_\theta(w,c))}{\sum_{w\in V…

Flink SQL Connector Kafka 核心參數全解析與實戰指南

Flink SQL Connector Kafka 是連接Flink SQL與Kafka的核心組件&#xff0c;通過將Kafka主題抽象為表結構&#xff0c;允許用戶使用標準SQL語句完成數據讀寫操作。本文基于Apache Flink官方文檔&#xff08;2.0版本&#xff09;&#xff0c;系統梳理從表定義、參數配置到實戰調優…

vscode內嵌瀏覽器實時預覽vue項目

安裝插件 web Preview 啟動vue項目 打開預覽 ctrl shift p 之后輸入并選擇 Open Web Preview 即可看到預覽窗口&#xff0c;但此時明明我的頁面是有內容的&#xff0c;但是窗口卻空白的。 因為默認訪問端口是3000&#xff0c;我們將其修改為vue項目默認的5173端口即可。 點…

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體

計算機網絡&#xff1a;&#xff08;四&#xff09;物理層的基本概念&#xff0c;數據通信的基礎知識&#xff0c;物理層下面的傳輸媒體 前言一、物理層的基本概念1. 什么是物理層2. 物理層的核心使命3. 物理層的四大特性 二、數據通信的基礎知識1. 數據通信系統的基本模型1.1 …

Linux系統性能優化

目錄 Linux系統性能優化 一、性能優化概述 二、性能監控工具 1. 基礎工具 2. 高級工具 三、子系統優化策略 1. CPU優化 2. 內存優化 3. 磁盤I/O優化 4. 網絡優化 四、資源限制優化 1. ulimit 2. cgroups&#xff08;控制組&#xff09; 五、安全與注意事項 六、…

【streamlit streamlit中 顯示 mermaid 流程圖有兩種方式】

streamlit中顯示mermaid 流程圖有兩種方式 mermaind示例 code """ flowchart LRmarkdown["This **is** _Markdown_"]newLines["Line1Line 2Line 3"]markdown --> newLinesmarkdown["This **is** _Markdown_"]newLines[&quo…