C# 基于halcon的視覺工作流-章21-點查找

C# 基于halcon的視覺工作流-章21-點查找

本章目標:
一、檢測顯著點;
二、Harris檢測興趣點;
三、Harris二項式檢測興趣點;
四、Sojka運算符檢測角點;
五、Lepetit算子檢測興趣點;

在這里插入圖片描述
一、檢測顯著點
halcon算子points_foerstner用于檢測圖像中的顯著點(重要點),重要點是與鄰域不同的點,即圖像函數在二維中變化的點,這些變化一方面發生在圖像邊緣的交叉處(稱為連接點、角點),另一方面也發生在顏色或亮度與周圍鄰域不同的地方(稱為區域點)。

與C#聯合開發時可用如下方法實現
HOperatorSet.PointsFoerstner(imageReduced, sigmaGrad1, sigmaInt1, sigmaPoints1, threshInhom1, threshShape1, smoothing1, eliminateDoublets1, out crossRow, out crossColumn, out HTuple coRRJunctions, out HTuple coRCJunctions, out HTuple coCCJunctions, out HTuple rowArea, out HTuple columnArea, out HTuple coRRArea, out HTuple coRCArea, out HTuple coCCArea);

其中,輸入參數:
imageReduced為輸入圖像,
sigmaGrad1為梯度平滑量,
sigmaInt1為漸變平滑量,
sigmaPoints1為函數平滑量,
threshInhom1為非均區域分割閾值,
threshShape1為點區域分割的閾值,
smoothing1為平滑方法,
eliminateDoublets1為消除多重檢測點,

輸出參數:
crossRow為連接點的行坐標,
crossColumn為連接點的列坐標,
coRRJunctions為連接點的協方差矩陣的行部分,
coRCJunctions為連接點的協方差矩陣的混合部分,
coCCJunctions為連接點的協方差矩陣的列部分,
rowArea為區域點的行坐標,
columnArea為區域點的列坐標,
coRRArea為區域點的協方差矩陣的行部分,
coRCArea為區域點的協方差矩陣的混合部分,
coCCArea為區域點的協方差矩陣的列部分

效果如下圖
在這里插入圖片描述
二、Harris檢測興趣點
halcon算子points_harris 基于平滑矩陣從圖像中提取興趣點。
與C#聯合開發時可用如下方法實現
HOperatorSet.PointsHarris(imageReduced, sigmaGrad2, sigmaSmooth2, alpha2, threshold2, out crossRow, out crossColumn);

其中,imageReduced為輸入圖像,
sigmaGrad2為梯度平滑量,
sigmaSmooth2為漸變平滑量,
alpha2為平方梯度矩陣的平方軌跡的權重,
threshold2為點的最小過濾器響應,
crossRow為輸出點的行坐標,
crossColumn為輸出點的列坐標

效果如下圖
在這里插入圖片描述
三、Harris二項式檢測興趣點
halcon算子points_harris_binomial 是 Harris 角點檢測的二項式近似實現,通過優化計算方式提升運算速度,同時保持與標準 Harris 檢測相似的精度。

與C#聯合開發時可用如下方法實現
HOperatorSet.PointsHarrisBinomial(imageReduced, maskSizeGrad3, maskSizeSmooth3, alpha3, threshold3, subpix3, out crossRow, out crossColumn);

其中,imageReduced為輸入圖像,
maskSizeGrad3為二項式平滑量,
maskSizeSmooth3為漸變平滑量,
alpha3為平方梯度矩陣的平方軌跡的權重,
threshold3為點的最小過濾器響應,
subpix3為打開或關閉亞像素細化,
crossRow為輸出點的行坐標,
crossColumn為輸出點的列坐標

效果如下圖
在這里插入圖片描述
四、Sojka運算符檢測角點
halcon算子points_sojka 專用于檢測圖像中的?角點?(兩條非共線邊緣的交點),通過分析局部鄰域梯度方向變化實現高精度定位。

與C#聯合開發時可用如下方法實現
HOperatorSet.PointsSojka(imageReduced, maskSize4, sigmaW4, sigmaD4, minGrad4, minApparentness4, minAngle4, subpix4, out crossRow, out crossColumn);

其中,imageReduced為輸入圖像,
maskSize4為過濾器尺寸,
sigmaW4為權重函數的西格瑪根據到角候選的距離,
sigmaD4為西格瑪的權重函數表示到理想灰度值邊緣的距離,
minGrad4為梯度最小值,
minApparentness4為外觀最小值,
minAngle4為角點方向變化的閾值(弧度),
subpix4為角點的亞像素精確計算,
crossRow為輸出點的行坐標,
crossColumn為輸出點的列坐標

效果如下圖
在這里插入圖片描述
五、Lepetit算子檢測興趣點
halcon算子points_lepetit 是 Halcon 中用于?快速提取興趣點?(如角點、水滴狀結構)的高效算子,特別適合實時性要求高的場景。

與C#聯合開發時可用如下方法實現
HOperatorSet.PointsLepetit(imageReduced, radius5, checkNeighbor5, minCheckNeighborDiff5, minScore5, subpix5, out crossRow, out crossColumn);

其中,imageReduced為輸入圖像,
radius5為圓半徑,
checkNeighbor5為圓圈上已檢查的鄰居數量,
minCheckNeighborDiff5為每個圓點的灰度值差閾值,
minScore5為最小比分,
subpix5為角點的亞像素精確計算,
crossRow為輸出點的行坐標,
crossColumn為輸出點的列坐標

效果如下圖
在這里插入圖片描述
halcon中點查找還有很多算子,本文僅描述以上幾種。

上述內容需要一定的技術功底,本章至此已結束,歡迎閱讀下章,謝謝!

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

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

相關文章

(11)機器學習小白入門YOLOv:YOLOv8-cls epochs與數據量的關系

YOLOv8-cls epochs與數據量的關系 (1)機器學習小白入門YOLOv :從概念到實踐 (2)機器學習小白入門 YOLOv:從模塊優化到工程部署 (3)機器學習小白入門 YOLOv: 解鎖圖片分類新技能 (4)機器學習小白入門YOLOv :圖片標注實操手冊 (5)機…

Grafana | 如何將 11.x 升級快速到最新 12.x 版本?

[ 知識是人生的燈塔,只有不斷學習,才能照亮前行的道路 ]📢 大家好,我是 WeiyiGeek,一名深耕安全運維開發(SecOpsDev)領域的技術從業者,致力于探索DevOps與安全的融合(Dev…

Dubbo + Spring Boot + Zookeeper 快速搭建分布式服務

Dubbo Spring Boot Zookeeper 快速搭建分布式服務 本文將詳細介紹如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一個簡單的分布式服務調用場景,包含服務提供者(Provider)、服務消費者(Consumer)及公共接口&…

五分鐘掌握 TDengine 數據文件的工作原理

小 T 導讀:今天我們來探討一下——TDengine中的時序數據到底是如何存儲的? 在上一期的文章《五分鐘掌握 TDengine 時序數據的保留策略》中,我們知道了TDengine是如何按照時間段對數據進行分區來管理數據的。 接下來,我們和大家一起…

Python爬蟲實戰:研究http-parser庫相關技術

一、研究背景與意義 在當今數字化時代,網絡數據蘊含著巨大的價值。從商業決策、學術研究到社會治理,對海量網絡信息的有效采集與分析至關重要。網絡爬蟲作為數據獲取的核心工具,其性能與穩定性直接影響數據質量。然而,隨著互聯網技術的發展,網站反爬機制不斷升級,傳統爬…

Go語言實戰案例-批量重命名文件

在《Go語言100個實戰案例》中的 文件與IO操作篇 - 案例17:批量重命名文件 的完整內容,適合初學者實踐如何使用 Go 操作文件系統并批量處理文件名。🎯 案例目標實現一個小工具,能夠批量重命名指定目錄下的所有文件,例如…

基于單片機非接觸紅外測溫系統

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 本設計實現了一種基于單片機的非接觸式紅外測溫系統,適用于快速、安全測量物體表面溫…

Python 入門手札:從 0 到會--第十天Python常用的第三方庫Numpy,Pandas,Matplotlib

目錄 一、Numpy 1.NumPy 是什么? 1.1安裝numpy 1.2 導入numpy模塊 2.NumPy 的核心:ndarray 2.1 什么是 ndarray? 2.2 ndarray 的創建方式 2.3 常見屬性(用于查看數組結構) 2.4 ndarray 的切片與索引 2.5 ndarr…

mysql 性能優化之Explain講解

EXPLAIN是 MySQL 中用于分析查詢執行計劃的重要工具,通過它可以查看查詢如何使用索引、掃描數據的方式以及表連接順序等信息,從而找出性能瓶頸。以下是關于EXPLAIN的詳細介紹和實戰指南:1. EXPLAIN 基本用法在SELECT、INSERT、UPDATE、DELETE…

Redis 連接:深度解析與最佳實踐

Redis 連接:深度解析與最佳實踐 引言 Redis 作為一款高性能的內存數據結構存儲系統,在當今的互聯網應用中扮演著越來越重要的角色。高效的 Redis 連接管理對于保證系統的穩定性和性能至關重要。本文將深入探討 Redis 連接的原理、配置以及最佳實踐,幫助讀者更好地理解和應…

C語言---VSCODE的C語言環境搭建

文章目錄資源下載配置環境驗證資源下載 站內下載 配置環境 解壓壓縮包,復制以下文件的路徑 打開主頁搜索系統環境變量 點擊環境變量 選擇系統變量中的Path,點擊編輯 在最后面添加路徑。 添加完成記得關機重啟。 驗證 重啟電腦之后打開在Power…

ojdbc對應jdk版本附下載地址(截止20250722)

可以從Oracle官網查看, JDBC and UCP Downloads page

Redis為什么被設計成是單線程的?

Redis單線程模型解析 當我們說Redis是單線程時,特指"其網絡IO和鍵值對讀寫操作由單個線程完成"。實際上,Redis僅網絡請求模塊和數據操作模塊采用單線程設計,而持久化存儲、集群支持等其他模塊都采用了多線程架構。 事實上,Redis從4.0版本就開始對部分命令實現了…

基礎流程圖

一、常用符號及定義二、 畫圖基礎規則1、從上至下,從左至右流向順序。2、開始符號只能有一個出口。3、進程符號不做校驗邏輯。4、相同流程圖,符號大小應為一致。5、引用流程,不重復繪制。6、路徑符號盡量避免交叉重疊。7、同一路徑&#xff0…

C# 結構體

目錄 1.如何定義一個結構體(struct 關鍵字) 2.如何使用一個結構體 3.如何修改一個數據 4.如何讓去訪問一個學生的信息 5、結構體數組 練習 1.如何定義一個結構體(struct 關鍵字) C#中public 、private、protect的區別 結構…

在Python中操作Word

生成請假條1.準備一個文件“template.docx”,內容如下。2.安裝docxtpl庫。pip install docxtpl3.執行代碼,替換字典內容。from docxtpl import DocxTemplate# 讀取定義模板文件 tpl DocxTemplate(template.docx) # 創建子文檔 sd tpl.new_subdoc() # 添…

網絡協議(四)網絡層 路由協議

在網絡層及網絡層之上使用IP地址,IP地址放在IP數據報的首部,而MAC地址放在MAC幀的首部。通過數據封裝,把IP數據報分組封裝為MAC幀。 由于路由器的隔離,IP網絡中無法通過廣播MAC地址來完成跨網絡的尋址,因此在網絡層中只…

(后者可以節約內存/GPU顯存)Pytorch中求逆torch.inverse和解線性方程組torch.linalg.solve有什么關系

假設我們要求A的逆矩陣,正常情況下我們使用如下命令: torch.inverse(A)但是本人發現,這個函數還挺消耗顯存的。想到求逆矩陣和求線性方程組有很大關系。從而可以使用torch.linalg.solve來求解逆矩陣,關鍵是其顯存消耗小。 求解逆矩…

esp32 idf 使用http訪問json直接拼接content_length = -1

CMakeLists.txt添加網絡請求庫 REQUIRES esp_http_client效果圖D (14235) HTTP_CLIENT: content_length -1 需要直接拼接content_length才能打印#include <stdio.h> #include <string.h> #include "esp_log.h" #include "esp_system.h" #inc…

[Github】下載使用github上的源代碼

一、安裝Anoconda 二、安裝 Git &#xff08;1&#xff09;安裝 方法 1&#xff1a;通過 Git 官網安裝? 下載 Git for Windows&#xff1a;https://git-scm.com/download/win運行安裝程序&#xff0c;??確保勾選 "Add Git to PATH"??&#xff08;重要&#…