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

模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)

這篇具有很好參考價(jià)值的文章主要介紹了模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、模板匹配相關(guān)概念

(一)什么是模板匹配?

  • 模板匹配指的是通過模板圖像與測(cè)試圖像之間的比較,找到測(cè)試圖像上與模板圖像相似的部分,這是通過計(jì)算模板圖像與測(cè)試圖像中目標(biāo)的相似度來實(shí)現(xiàn)的,可以快速地在測(cè)試圖像中定位出預(yù)定義的目標(biāo)

  • 是圖像處理中最基本、最常用的匹配方法

(二)匹配主要思路

  • 為感興趣的對(duì)象創(chuàng)建模型:使用具用代表性圖像來創(chuàng)模板匹配模型句柄

  • 在搜索圖像中查找模型在圖像中搜索先前創(chuàng)建的模型的實(shí)例及其位置,搜索它們的角度及行列坐標(biāo)

(三)匹配結(jié)果

  • 通過模板匹配可以得到目標(biāo)的相似度,旋轉(zhuǎn)角度,行列坐標(biāo),縮放大小等

(四)需要處理的問題

  • 針對(duì)不同的圖像特征和檢測(cè)環(huán)境,有多種模板匹配算法

  • 如何選擇合適的模板匹配算法,取決于具體的圖像數(shù)據(jù)和匹配任務(wù)

  • 只有理解這些算法的原理和適用場(chǎng)景后,才能根據(jù)項(xiàng)目的需要選擇合適的算法

(五)模板匹配的分類

  • HALCON模板匹配包含:基于點(diǎn)、基于灰度值、基于描述性、基于相關(guān)性、基于形狀、基于組件、局部可變形、可變形的

  • 常用的方式是基于相關(guān)性和基于形狀

二、基于灰度值的模板匹配(Gray-Value-Based,不怎么用的)

  • 基于灰度值的模板匹配是最經(jīng)典的模板匹配算法,也是最早提出來的模板匹配算法

(一)根本思想

  • 計(jì)算模板圖像與檢測(cè)圖像之間的像素灰度差值的絕對(duì)值總和(SAD方法)或者平方差總和(SSD方法)

(二)原理

(三)使用條件

  • 首先選擇一塊ROI(感興趣區(qū)域)作為模板圖像,生成基于灰度值的模板

  • 然后將檢測(cè)圖像與模板圖像進(jìn)行粗匹配,在檢測(cè)圖像與模板圖像中任選一點(diǎn),采取隔點(diǎn)搜索的方式計(jì)算二者灰度的相似性,這樣粗匹配一遍得到粗相關(guān)點(diǎn)

  • 接下來進(jìn)行精匹配,將得到的粗相關(guān)點(diǎn)作為中心點(diǎn),用最小二乘法尋找二者之間的最優(yōu)匹配點(diǎn)

  • 該方法是利用模板圖像的所有灰度值進(jìn)行匹配,但在光照發(fā)生變化的情況下灰度值會(huì)產(chǎn)生強(qiáng)烈的變化

  • 因此該方法不能適應(yīng)光照發(fā)生變化的情況,也不能用于多通道圖像的匹配

  • 適用于目標(biāo)圖像光照比較穩(wěn)定的情況,多數(shù)情況下還是優(yōu)先考慮基于相關(guān)性的匹配和基于形狀的匹配。只有針對(duì)極少數(shù)的簡(jiǎn)單圖像,才會(huì)考慮基于灰度值的匹配

(四)灰度匹配算子

/*
1.創(chuàng)建模板:create_template()
2.搜索模板和圖像的最佳匹配:best_match()
3.釋放模板:clear_template()
*/

(五)實(shí)例

// 清空窗口,然后讀取圖像,轉(zhuǎn)換為灰度圖。關(guān)閉當(dāng)前圖像窗口并打開一個(gè)固定縱橫比的窗口用來顯示窗口
dev_clear_window ()
read_image(Image, '灰度.png')
rgb1_to_gray(Image, GrayImage)
dev_close_window()
dev_open_window_fit_image(GrayImage, 0, 0, -1, -1, WindowHandle)
dev_display(GrayImage)

// 畫ROI區(qū)域(單個(gè)圓點(diǎn)),用于創(chuàng)建模板
draw_circle(WindowHandle, Row1, Column1, Radius1)
gen_circle(ROI_0, Row1, Column1, Radius1)
reduce_domain(GrayImage, ROI_0, ImageReduced)
create_template(ImageReduced, 255, 4, 'sort', 'original', TemplateID)
    
// 二值化后進(jìn)行連通域操作,多條件篩選想要的區(qū)域
threshold(GrayImage, Region, 128, 255)
connection(Region, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 50000)
// 為選中的區(qū)域增加灰度值,這里增加的是灰度圖
add_channels(SelectedRegions, GrayImage, GrayRegions)

// 搜索模板和圖像的最佳匹配。
best_match(GrayRegions, TemplateID, 40, 'false', Row, Column, Error1)
// 生成特定長(zhǎng)度的元組并初始化其元素,將所有的圓半徑設(shè)為20
// 要生成元組長(zhǎng)度,常量,用于初始化元組元素。新生成的元組中每個(gè)元素的數(shù)據(jù)類型和值由輸入?yún)?shù)Const決定,該參數(shù)可能只包含單個(gè)元素。Newtuple中的所有元素都具有與Const中單個(gè)元素相同的數(shù)據(jù)類型和值。
tuple_gen_const(|Row|, 20, Radius)
dev_set_line_width (3)
// 創(chuàng)建與圓或圓弧對(duì)應(yīng)的XLD輪廓
gen_circle_contour_xld(Circles, Row, Column, Radius, 0, 6.28318, 'positive', 1)
dev_display(GrayImage)
dev_display(Circles)

模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)

三、基于形變的模板匹配?

  • 基于形變的模板匹配也是一種基于形狀的匹配方法。但是基于形變的模板匹配返回結(jié)果中不僅包括輕微形變的形狀、形變的位置和參數(shù),還有描述形變的參數(shù),如旋轉(zhuǎn)角度、縮放倍數(shù)等

  • 基于透視的形變可以返回一個(gè)二維投影變換矩陣。如果是在相機(jī)標(biāo)定的情況下,通過相機(jī)參數(shù),還可以計(jì)算出目標(biāo)的三維位姿

(一)根本思想

  • 形變有基于目標(biāo)局部的形變 local deformable matching(局部變形匹配)和由于透視關(guān)系而產(chǎn)生的形變(透視形變匹配)

(二)原理

(三)使用條件

  • 對(duì)于很多干擾因素不敏感,如光照變化、混亂無(wú)序、縮放變化等。其適用于多通道圖像,對(duì)于紋理復(fù)雜的圖像匹配則不太適用

(四)局部變形匹配算子

/*
1.創(chuàng)建模板:create_local_deformable_model()
2.尋找模板:find_local_deformable_model()
3.釋放模板:clear_deformable_model()
*/

(五)實(shí)例(基于局部形變的匹配)

dev_close_window ()
*讀取參考圖像,這里讀取的是單通道灰度圖像	
*這里的參考圖像是已經(jīng)剪裁好的感興趣區(qū)域圖像,可以直接作為模板圖像
read_image (ModelImage, 'data/creamlabel')
*設(shè)置顯示窗口參數(shù)
dev_open_window_fit_image (ModelImage, 0, 0, -1, -1, WindowHandle)
*創(chuàng)建局部形變模板,返回局部形變模板句柄ModelID
create_local_deformable_model (ModelImage, 'auto', rad(-15), rad(30), 'auto', 1, 1, 'auto', 1, 1, 'auto', 'none', 'use_polarity', [40,60], 'auto', [], [], ModelID)
*獲取局部形變模板的輪廓
get_deformable_model_contours (ModelContours, ModelID, 1)
*為了將模板輪廓可視化顯示,需要將輪廓與圖像實(shí)物對(duì)應(yīng)起來
*因此出于可視化顯示的目的,先獲取模板圖像的幾何中心
area_center (ModelImage, Area, Row, Column)
*進(jìn)行仿射變換
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_translate (HomMat2DIdentity, Row, Column, HomMat2DTranslate)
affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2DTranslate)
*設(shè)置輪廓顯示的線條參數(shù),顯示模板圖像與輪廓
dev_set_line_width (2)
dev_display (ModelImage)
dev_display (ContoursAffinTrans)
stop ()
*讀取測(cè)試圖像,這里的圖像中更包含模板圖像,并且有一定的形變
read_image (DeformedImage, 'data/cream')
*顯示用于測(cè)試的局部形變圖像
dev_resize_window_fit_image (DeformedImage, 0, 0, -1, -1)
dev_display (DeformedImage)
*進(jìn)行局部形變模板匹配
find_local_deformable_model (DeformedImage, ImageRectified, VectorField, DeformedContours, ModelID, rad(-14), rad(28), 0.9, 1, 0.9, 1, 0.78, 0, 0, 0, 0.7, ['image_rectified','vector_field','deformed_contours'], ['deformation_smoothness','expand_border','subpixel'], [18,0,0], Score, Row, Column)
*顯示形變輪廓
dev_display (DeformedImage)
dev_set_line_width (2)
dev_set_color ('red')
dev_display (DeformedContours)
stop()
*匹配結(jié)束,釋放模板資源
clear_deformable_model (ModelID)

模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)

四、基于描述符的模板匹配

(一)根本思想

  • 與基于透視形變的模板匹配類似,基于描述符的模板匹配能夠在物體處于透視形變的狀態(tài)下進(jìn)行匹配,并且已標(biāo)定和未標(biāo)定的相機(jī)圖像都適用

  • 與透視形變不同的是,它的模板不是根據(jù)邊緣輪廓?jiǎng)?chuàng)建的,而是根據(jù)特征點(diǎn)創(chuàng)建的

(二)原理

  • 點(diǎn)的位置或相鄰像素的灰度信息等都可以作為描述符

(三)使用條件

  • 有紋理的平面圖形非常適用于這種方法,尤其是對(duì)于旋轉(zhuǎn)傾斜等場(chǎng)景中的匹配可以得到非常理想的結(jié)果

  • 基于描述符的模板匹配只能用于有紋理的圖像

(四)描述符匹配算子

?/*
?1.創(chuàng)建模板:create_calib_descriptor_model()
?2.尋找模板:find_calib_descriptor_model()
?3.釋放模板:clear_descriptor_model()
?*/

(五)實(shí)例

?dev_close_window ()
?*讀取參考圖像,這里的參考圖像應(yīng)只包含識(shí)別的關(guān)鍵區(qū)域,用于創(chuàng)建模板
?read_image (ImageLabel, 'D:/MVTec/HALCON-21.11-Progress/examples/images/brochure/brochure_01.jpg')
?*設(shè)置窗口參數(shù)用于顯示圖像
?get_image_size (ImageLabel, Width, Height)
?dev_open_window (0, 0, Width, Height, 'black', WindowHandle1)
?dev_set_draw ('margin')
?dev_display (ImageLabel)
?*設(shè)置用于存儲(chǔ)特征點(diǎn)和感興趣區(qū)域的變量
?NumPoints := []
?RowRoi := [10,10,Height - 10,Height - 10]
?ColRoi := [10,Width - 10,Width - 10,10]
?*將參考圖像中的除邊緣外的區(qū)域都設(shè)為感興趣區(qū)域。因?yàn)閰⒖紙D像已經(jīng)近似于匹配的紋理樣本
?gen_rectangle1 (Rectangle, 10, 10, Height - 10, Width - 10)
?*顯示參考圖像上選擇的ROI區(qū)域
?dev_set_line_width (4)
?dev_display (Rectangle)
?stop ()
?*將感興趣區(qū)域剪裁為模板圖像
?reduce_domain (ImageLabel, Rectangle, ImageReduced)
?dev_clear_window ()
?dev_display (ImageLabel)
?*創(chuàng)建基于描述符的模板
?create_uncalib_descriptor_model (ImageReduced, 'harris_binomial', [], [], ['min_rot','max_rot','min_scale','max_scale'], [-90,90,0.2,1.1], 42, ModelID)
?*設(shè)置模型的原點(diǎn),為了后面獲取坐標(biāo)作參照
?set_descriptor_model_origin (ModelID, -Height / 2, -Width / 2)
?*獲取模型中特征點(diǎn)的位置
?get_descriptor_model_points (ModelID, 'model', 'all', Row_D, Col_D)
?*將模型中計(jì)算出的特征點(diǎn)存入NumPoints變量中
?NumPoints := [NumPoints,|Row_D|]
??
?*讀取測(cè)試圖像,這里讀取的是單通道灰度圖像,因此省略了通道轉(zhuǎn)化的步驟
?read_image (ImageGray, 'D:/MVTec/HALCON-21.11-Progress/examples/images/brochure/brochure_05.jpg')
?dev_resize_window_fit_image (ImageGray, 0, 0, -1, -1)
?dev_display (ImageGray)
?*對(duì)描述符特征點(diǎn)進(jìn)行匹配
?find_uncalib_descriptor_model (ImageGray, ModelID, 'threshold', 800, ['min_score_descr','guided_matching'], [0.003,'on'], 0.25, 1, 'num_points', HomMat2D, Score)
?*顯示匹配結(jié)果,將特征點(diǎn)用不同的顏色繪制出來
?if ((|HomMat2D| > 0) and (Score > NumPoints[0] / 4))
? ? ?get_descriptor_model_points (ModelID, 'search', 0, Row, Col)
? ?*創(chuàng)建十字標(biāo)識(shí)符
? ? ?gen_cross_contour_xld (Cross, Row, Col, 6, 0.785398)
? ? ?projective_trans_region (Rectangle, TransRegion, HomMat2D, 'bilinear')
? ? ?projective_trans_pixel (HomMat2D, RowRoi, ColRoi, RowTrans, ColTrans)
? ? ?angle_ll (RowTrans[2], ColTrans[2], RowTrans[1], ColTrans[1], RowTrans[1], ColTrans[1], RowTrans[0], ColTrans[0], Angle)
? ? ?Angle := deg(Angle)
? ? ?if (Angle > 70 and Angle < 110)
? ? ? ? ?area_center (TransRegion, Area, Row, Column)
? ? ? ? ?dev_set_color ('green')
? ? ? ? ?dev_set_line_width (4)
? ? ? ? ?dev_display (TransRegion)
? ? ? ? ?dev_set_colored (6)
? ? ? ? ?dev_display (Cross) ? ? ? ? ? ? ? ?
? ? endif
?endif
?stop ()
?*匹配結(jié)束,釋放模板資源
?clear_descriptor_model (ModelID)

五、優(yōu)化匹配速度

  • 可從兩個(gè)方面下手:縮小搜索空間和使用圖像不采樣

六、使用halcon匹配助手進(jìn)行匹配

  • 選擇匹配方法
  • 創(chuàng)建模板
  • 檢測(cè)模板
  • 優(yōu)化匹配速度

模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)文章來源地址http://www.zghlxwxcb.cn/news/detail-477659.html

到了這里,關(guān)于模板匹配相關(guān)概念與幾種不常用的模板匹配(學(xué)都學(xué)了,了解一下)的文章就介紹完了。如果您還想了解更多內(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 筆記:cv2.matchTemplate() 單模板匹配和多模板匹配

    OpenCV 筆記:cv2.matchTemplate() 單模板匹配和多模板匹配

    ????????模板匹配是用來在一副大圖中搜尋查找模版圖像位置的方法。 ? ? ? ? 模板匹配實(shí)現(xiàn)簡(jiǎn)單(2~3行代碼),計(jì)算效率高,不需要執(zhí)行閾值化、邊緣檢測(cè)等操作來生成二值化圖像。 但是: 如果輸入圖像中存在變化的因素,包括旋轉(zhuǎn)、縮放、視角變化等,模板匹配很容

    2024年02月05日
    瀏覽(21)
  • 多角度模板匹配的模板創(chuàng)建技巧

    多角度模板匹配的模板創(chuàng)建技巧

    ????????基于形狀的模板匹配角度范圍通常為360°,如果角度步長(zhǎng)為1°,就需要準(zhǔn)備360個(gè)模板,再加上金字塔層級(jí),準(zhǔn)備的模板個(gè)數(shù)會(huì)多達(dá)上百個(gè),這樣無(wú)疑對(duì)模板的存儲(chǔ)和讀取都極為不利,一是占據(jù)很大的內(nèi)存,二是極其耗時(shí),光是讀取模板的時(shí)間就比整個(gè)匹配時(shí)間長(zhǎng)。

    2024年02月10日
    瀏覽(21)
  • opencv#27模板匹配

    opencv#27模板匹配

    ? ? ?例如給定一張圖片,如上圖大矩陣所示,然后給定一張模板圖像,如上圖小矩陣。 ? ? ?我們?cè)诖髨D像中去搜索與小圖像中相同的部分或者是最為相似的內(nèi)容。比如我們?cè)趫D像中以灰色區(qū)域給出一個(gè)與模板圖像尺寸大小一致的區(qū)域,通過比較灰色區(qū)域中的內(nèi)容與模板中

    2024年01月23日
    瀏覽(21)
  • 模板匹配Template Matching

    模板匹配Template Matching

    ?實(shí)現(xiàn)代碼: 運(yùn)行結(jié)果:

    2024年02月11日
    瀏覽(24)
  • Opencv——圖像模板匹配

    Opencv——圖像模板匹配

    什么是模板匹配呢? 看到這里大家是否會(huì)覺得很熟悉的感覺涌上心頭!在人臉識(shí)別是不是也會(huì)看見?等等。 模板匹配可以看作是對(duì)象檢測(cè)的一種非常基本的形式。使用模板匹配,我們可以使用包含要檢測(cè)對(duì)象的“模板”來檢測(cè)輸入圖像中的對(duì)象。 參數(shù):(img: 原始圖像、

    2024年02月16日
    瀏覽(25)
  • 用OpenCV進(jìn)行模板匹配

    用OpenCV進(jìn)行模板匹配

    今天我們來研究一種傳統(tǒng)圖像處理領(lǐng)域中對(duì)象檢測(cè)和跟蹤不可或缺的方法——模板匹配,其主要目的是為了在圖像上找到我們需要的圖案,這聽起來十分令人興奮。 所以,事不宜遲,讓我們直接開始吧! 模板匹配的算法的核心十分簡(jiǎn)單:它將模板與源圖像中的每個(gè)部分進(jìn)行

    2024年02月10日
    瀏覽(32)
  • 第15章:模板匹配

    第15章:模板匹配

    ? 模板匹配是指在當(dāng)前 圖像A 內(nèi)匹配與 圖像B 最相似的部分,一般將 圖像A 稱為 輸入圖像 ,將 圖像B 稱為 模板圖像 。 模板匹配的方法是將模板圖像B在圖像A上滑動(dòng),逐個(gè)遍歷所有像素以完成匹配。 ? 例如,下圖中,大圖像“l(fā)ena”是輸入圖像,“眼睛”圖像是模板圖像。

    2024年02月09日
    瀏覽(7)
  • 圖像識(shí)別基礎(chǔ)之模板匹配

    圖像識(shí)別基礎(chǔ)之模板匹配

    圖像匹配 本質(zhì):圖像的相似度很高(矩陣的相似度很高)

    2024年02月20日
    瀏覽(11)
  • OpenCV 模板匹配 matchTemplate

    OpenCV 模板匹配 matchTemplate

    模板匹配是一項(xiàng)在一副圖像中尋找與另一幅模板圖像最匹配(相似)部分的技術(shù)。模板匹配不是基于直方圖的,而是通過在輸入圖像上滑動(dòng)圖像塊(模板)同時(shí)對(duì)比相似度,來對(duì)模板和輸入圖像進(jìn)行匹配的一種方法。 應(yīng)用: (1)目標(biāo)查找定位 (2)運(yùn)動(dòng)物體跟蹤 image:待搜

    2024年02月04日
    瀏覽(34)
  • OpenCV(十九):模板匹配

    OpenCV(十九):模板匹配

    1.模板匹配: ? ? ?OpenCV提供了一個(gè)模板匹配函數(shù),用于在圖像中尋找給定模板的匹配位置。 2.圖像模板匹配函數(shù)matchTemplate ?void matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask = noArray() ); image:待模板匹配的原圖像,圖像數(shù)據(jù)類型為CV 8U和CV 32F兩者中

    2024年02月09日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包