国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實(shí)現(xiàn))

這篇具有很好參考價(jià)值的文章主要介紹了利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實(shí)現(xiàn))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


基于OpenCV與Qt5構(gòu)建卡尺擬合直線工具

前言

博主近期基于??礦ision Master4.0做了一個(gè)工業(yè)視覺工程項(xiàng)目,其中就使用到了??礦M的找直線工具,然后博主根據(jù)其中的技術(shù)原理,也仿照開發(fā)了一個(gè)類似的功能,基于OpenCV和Qt5構(gòu)建一個(gè)卡尺找直線的工具。卡尺找直線是在計(jì)算機(jī)視覺領(lǐng)域中常用的技術(shù),用于檢測(cè)圖像中的圖像,廣泛應(yīng)用于工業(yè)視覺等領(lǐng)域。
卡尺擬合圓工具可以參考博主寫的利用OpenCV與Qt5構(gòu)建卡尺找圓工具(C++實(shí)現(xiàn))

一、卡尺邊緣直線擬合概述

卡尺邊緣直線擬合是一種常用的計(jì)算機(jī)視覺技術(shù),用于在圖像中檢測(cè)和擬合出物體的直線邊緣。其原理基于數(shù)學(xué)幾何和統(tǒng)計(jì)學(xué)方法。

以下是卡尺邊緣直線擬合的基本原理:

  1. 邊緣檢測(cè):首先,在圖像上進(jìn)行邊緣檢測(cè),將圖像中的邊緣信息提取出來。常用的邊緣檢測(cè)算法包括Sobel算子、Canny算子等。

  2. 卡尺滑動(dòng)窗口:從圖像中選擇一個(gè)起始點(diǎn),然后以固定的步長(zhǎng)和方向移動(dòng)一個(gè)小窗口(通常為一維),在窗口內(nèi)計(jì)算邊緣像素的梯度。

  3. 距離度量與擬合:對(duì)于每個(gè)窗口,通過距離度量函數(shù)(例如,最小二乘法)來衡量窗口內(nèi)像素與直線之間的誤差。最常見的距離度量函數(shù)是點(diǎn)到直線的距離。

  4. 迭代更新:迭代地調(diào)整窗口的位置,使得距離度量的誤差最小化。這可以通過不斷調(diào)整窗口的位置和方向來實(shí)現(xiàn),直到達(dá)到收斂條件。

  5. 直線擬合:最終,當(dāng)窗口移動(dòng)到最佳擬合直線時(shí),將窗口內(nèi)的點(diǎn)擬合成一條直線模型。這可以通過擬合算法(如最小二乘法)來計(jì)算直線參數(shù)(如斜率和截距)。

通過上述步驟,卡尺邊緣直線擬合可以有效地從圖像中提取直線邊緣信息,并擬合出相應(yīng)的直線模型。這種方法在許多計(jì)算機(jī)視覺任務(wù)中都得到了廣泛應(yīng)用,如目標(biāo)檢測(cè)、線段提取、道路標(biāo)線檢測(cè)等。


二、卡尺原理

卡尺的原理就是找N個(gè)小矩形ROI里面的灰度值突變的地方。即:遍歷每個(gè)小矩形ROI,分別找到1個(gè)點(diǎn),這個(gè)點(diǎn)是灰度突變的峰值。然后把這N個(gè)點(diǎn)擬合成直線或者圓。

三、1D邊緣提取

opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  1. 通過Qt5構(gòu)建一個(gè)卡尺直線查找工具形狀,由一個(gè)個(gè)矩形工具構(gòu)建;
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  2. 對(duì)平均灰度值(輪廓)進(jìn)行高斯濾波,目的是讓曲線更平滑,消除噪點(diǎn);
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  3. 對(duì)平滑后的輪廓求一階導(dǎo)數(shù);
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  4. 根據(jù)設(shè)置的參數(shù)提取邊緣點(diǎn)。

四、直線擬合原理

直線擬合是一種常見的數(shù)學(xué)方法,用于通過一組離散的數(shù)據(jù)點(diǎn)來估計(jì)并擬合一條直線模型。該方法可以在許多領(lǐng)域中應(yīng)用,如統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺等。

以下是直線擬合的原理:

  1. 數(shù)據(jù)收集:首先,收集一組已知的數(shù)據(jù)點(diǎn)。這些數(shù)據(jù)點(diǎn)可以是實(shí)驗(yàn)觀測(cè)值、樣本數(shù)據(jù)或通過其他方式獲取的數(shù)據(jù)。

  2. 確定擬合模型:對(duì)于直線擬合,我們假設(shè)所需擬合的模型為一條直線。直線模型可以用斜率(slope)和截距(intercept)來表示,即y = mx + b,其中m是斜率,b是截距。

  3. 損失函數(shù)選擇:選擇一個(gè)損失函數(shù)來度量觀測(cè)點(diǎn)與擬合直線之間的誤差。常見的損失函數(shù)是最小二乘法(Least Squares),即將每個(gè)觀測(cè)點(diǎn)到直線的垂直距離的平方求和。

  4. 參數(shù)估計(jì):通過最小化損失函數(shù),找到最佳的直線參數(shù)(斜率和截距)。在最小二乘法中,可以通過公式計(jì)算得到閉合解,或者使用優(yōu)化算法(如梯度下降)進(jìn)行迭代優(yōu)化。

  5. 模型評(píng)估:擬合直線后,可以對(duì)模型進(jìn)行評(píng)估以確定其適用性和效果。常見的評(píng)估指標(biāo)包括均方誤差(Mean Squared Error),確定系數(shù)(Coefficient of Determination)等。

五、軟件實(shí)現(xiàn)

未使用商業(yè)圖像處理庫(kù),而是純粹Qt5+OpenCV
opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  1. 選擇要查找直線的圖像
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  2. 繪制一個(gè)直線查找工具
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

  3. 直線擬合
    opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

4.與??礦ision Master對(duì)比
opencv 卡尺,工業(yè)視覺小項(xiàng)目案例,OpenCV,opencv,c++,計(jì)算機(jī)視覺,qt5

結(jié)束語(yǔ)

由于博主能力有限,本篇文章中提及的方法,也難免會(huì)有疏漏之處,希望您能熱心指出其中的錯(cuò)誤,以便下次修改時(shí)能以一個(gè)更完美更嚴(yán)謹(jǐn)?shù)臉幼?,呈現(xiàn)在大家面前。文章來源地址http://www.zghlxwxcb.cn/news/detail-717025.html

到了這里,關(guān)于利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實(shí)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • opencv(38) 圖像輪廓之七:橢圓擬合和直線擬合

    opencv(38) 圖像輪廓之七:橢圓擬合和直線擬合

    橢圓擬合法的基本思路是:對(duì)于給定平面上的一組樣本點(diǎn),尋找一個(gè)橢圓,使其盡可能接近這些樣本點(diǎn)。也就是說,將圖像中的一組數(shù)據(jù)以橢圓方程為模型進(jìn)行擬合,使某一橢圓方程盡量滿足這些數(shù)據(jù),并求出該橢圓方程的各個(gè)參數(shù)。 就橢圓擬合而言,就是先假設(shè)橢圓參數(shù),

    2024年02月04日
    瀏覽(27)
  • OpenCV(三十七):擬合直線、三角形和圓形

    OpenCV(三十七):擬合直線、三角形和圓形

    1.點(diǎn)集擬合的含義 ? ? ? ?點(diǎn)集擬合是一種通過擬合函數(shù)或曲線來近似描述給定離散數(shù)據(jù)點(diǎn)的技術(shù),在點(diǎn)集擬合中,可以使用不同的函數(shù)或曲線擬合方法來擬合直線、三角形和圓形。 直線擬合 :對(duì)于給定的二維數(shù)據(jù)點(diǎn)集合,可以使用最小二乘法來擬合一條直線。 三角形擬合

    2024年02月03日
    瀏覽(27)
  • 學(xué)習(xí)Opencv(蝴蝶書/C++)代碼——1.macOS下安裝OpenCV4.8.0和QT5.15(C++)

    學(xué)習(xí)Opencv(蝴蝶書/C++)代碼——1.macOS下安裝OpenCV4.8.0和QT5.15(C++)

    先看看vscode里怎么弄c++,詳見:mac下vscode配置c++環(huán)境 同時(shí)記得把cmake下載好,路徑配置好 直接從官網(wǎng)教程開始(事實(shí)證明不是很全面,還是有很多問題需要額外找解決方案): https://docs.opencv.org/4.x/d0/db2/tutorial_macos_install.html 一般是有兩種安裝方式: 直接安裝對(duì)應(yīng)平臺(tái)的預(yù)編

    2024年01月18日
    瀏覽(27)
  • Opencv之RANSAC算法用于直線擬合及特征點(diǎn)集匹配詳解

    Opencv之RANSAC算法用于直線擬合及特征點(diǎn)集匹配詳解

    講述Ransac擬合與最小二乘在曲線擬合上的優(yōu)缺點(diǎn) 講述在進(jìn)行特征點(diǎn)匹配時(shí),最近鄰匹配與Ransac匹配的不同之處 另外,Ransac也被用于橢圓擬合、變換矩陣求解等 1.1 原理 RANSAC(RANdom SAmple Consensus,隨機(jī)采樣一致)算法是從一組含有“外點(diǎn)”(outliers)的數(shù)據(jù)中正確估計(jì)數(shù)學(xué)模型參數(shù)的

    2024年02月05日
    瀏覽(38)
  • 霍夫變換直線檢測(cè)算法實(shí)現(xiàn)OpenCV(C++)

    霍夫變換直線檢測(cè)算法實(shí)現(xiàn)OpenCV(C++)

    一、原理 對(duì)于霍夫變換的原理這里就不進(jìn)行描述啦,感興趣的可以自行搜索。也可以看知乎上面的這篇貼文通俗易懂理解——霍夫變換原理。 二、算法代碼 三、效果測(cè)試 測(cè)試代碼 上述代碼中的drawLine()函數(shù)是《OpenCV4快速入門》一書的代碼清單 7-2中的原函數(shù),只用于畫線。

    2024年02月05日
    瀏覽(22)
  • VS2019+OpenCV+Qt5.15.2安裝及工程配置

    VS2019+OpenCV+Qt5.15.2安裝及工程配置

    目錄 一、下載鏈接 1.1 VS2019下載安裝 1.2 OpenCV下載安裝 1.3 Qt5.15下載安裝 二、工程環(huán)境配置 2.1 OpenCV環(huán)境配置 2.1.1? 環(huán)境變量配置 2.1.2 工程屬性表配置 ?2.1.3 重啟vs測(cè)試 ?2.2 Qt環(huán)境配置 2.2.1 Qt Creator設(shè)置 ?2.2.2 VS2019配置 ?2.2.3 創(chuàng)建Qt項(xiàng)目 2.2.4 UI 設(shè)計(jì)配置 該文件僅 1.39 MB,是 VS

    2024年02月16日
    瀏覽(39)
  • 【OpenCv ? c++】幾何檢測(cè) —— 霍夫變換 | 霍夫直線檢測(cè) | 霍夫線變化

    【OpenCv ? c++】幾何檢測(cè) —— 霍夫變換 | 霍夫直線檢測(cè) | 霍夫線變化

    ?? 個(gè)人簡(jiǎn)介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 【OpenCV ? c++】計(jì)算機(jī)視覺 ?? 若有幫助,還請(qǐng) 關(guān)注?點(diǎn)贊?收藏 ,不行的話我再努努力??????

    2024年02月06日
    瀏覽(17)
  • RK3568+QT5+OpenCV Debian10母板開發(fā)環(huán)境搭建自記錄

    最重要的就是需要opencv的源碼包,也就是source 1.首先要對(duì)Debian10的鏡像源進(jìn)行修改 路徑在/etc/apt/source.list中,需要換上下面的鏡像,可以在終端直接輸入: sudo nautilus 啟動(dòng)root版本的文件管理器直接修改,也可以利用vim等等,舊鏡像可以先注釋掉 修改后,輸入: sudo apt update

    2024年02月13日
    瀏覽(116)
  • 基于Qt5的圖像交互控件開發(fā)(C++實(shí)現(xiàn))

    基于Qt5的圖像交互控件開發(fā)(C++實(shí)現(xiàn))

    博主近期看到??礦M、halcon以及visionpro視覺軟件都包含一個(gè)圖像智能交互控件,然后近期根據(jù)其中的技術(shù)原理,也基于Qt5仿照開發(fā)了一個(gè)類似的功能,包含矩形、旋轉(zhuǎn)矩形、任意多邊形、圓、圓環(huán)、扇環(huán),直線卡尺以及圓卡尺等常用控件,圖像智能交互是在計(jì)算機(jī)視覺領(lǐng)域中

    2024年02月05日
    瀏覽(64)
  • Win10平臺(tái)VS2017+OpenCV3.4.0+Qt5.12配置教程

    本文專為圖像處理開發(fā)項(xiàng)目人員準(zhǔn)備,涉及多個(gè)軟件和庫(kù)的安裝、配置教程,親測(cè)可行。 1、 VS 是美國(guó)微軟公司(Microsoft)開發(fā)的 集成開發(fā)環(huán)境 “Visual Studio” 的簡(jiǎn)稱,是Windows平臺(tái)最流行的應(yīng)用程序集成開發(fā)環(huán)境。 注意區(qū)分:MSVC(Microsoft Visual C++ Compiler)是指微軟的VC編譯

    2024年02月05日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包