最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

opencv?C++模板匹配的簡(jiǎn)單實(shí)現(xiàn)

 更新時(shí)間:2022年02月18日 15:42:35   作者:R-G-B  
這篇文章主要介紹了opencv?C++模板匹配的簡(jiǎn)單實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一 簡(jiǎn)單實(shí)現(xiàn)

#include <opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;

int main()
{
	Mat img = imread("52.jpg");
	Mat templ = imread("templ.jpg");
	Mat result;
	matchTemplate(img,templ,result,TM_CCOEFF_NORMED);//原圖,模板,匹配方法
	
	double maxVal, minVal;
	Point maxLoc, minLoc;
	//尋找最大值,最小值
	minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc);
	//繪制矩形,矩形的左上角是最大值的位置,右下角是在最大值上加上模板的行寬和和列高
	rectangle(img,Point(maxLoc.x,maxLoc.y),Point(maxLoc.x+templ.cols,maxLoc.y+templ.rows),Scalar(0,0,255),2);//顏色紅色,粗度2
	imshow("原圖", img);
	imshow("模板",templ);
	imshow("result",result);
	waitKey(0);
	return 0;
}

結(jié)果如下,分別是模板圖,原圖(找到了與模板匹配的部分,并矩形框標(biāo)記,結(jié)果圖,暫時(shí)覺得有點(diǎn)問題的 )

二 函數(shù)及原理講解

1 matchTemplate()參數(shù)詳解

matchTemplate( InputArray image, InputArray templ,OutputArray result, int method );

image:待匹配的源圖像
templ:模板圖像
result:保存結(jié)果的矩陣,我們可以通過minMaxLoc() 確定結(jié)果矩陣的最大值和最小值的位置.

method :模板匹配的算法
有以下六種:
  enum { TM_SQDIFF=0, TM_SQDIFF_NORMED=1, TM_CCORR=2, TM_CCORR_NORMED=3, TM_CCOEFF=4, TM_CCOEFF_NORMED=5 };

TM_SQDIFF,TM_SQDIFF_NORMED匹配數(shù)值越低表示匹配效果越好,其它四種反之。
TM_SQDIFF_NORMED,TM_CCORR_NORMED,TM_CCOEFF_NORMED是標(biāo)準(zhǔn)化的匹配,得到的最大值,最小值范圍在0~1之間,其它則需要自己對(duì)結(jié)果矩陣歸一化。
不同的方法會(huì)得到差異很大的結(jié)果,可以通過測(cè)試選擇最合適的方法。

cv::TM_SQDIFF 判斷 minVal 越小,效果越好
計(jì)算模板與目標(biāo)圖像的方差,由于是像素值差值的平方的和,所以值越小匹配程度越高;

cv::TM_SQDIFF_NORMED 判斷 minVal 越接近0,效果越好
范化的cv::TM_SQDIFF,取值為0-1之間,完美匹配返回值為0;

cv::TM_CCORR 判斷 maxVal 越大,效果越好
使用dot product計(jì)算匹配度,越高匹配度就好;

cv::TM_CCORR_NORMED 判斷 maxVal 越接近1,效果越好
范化的cv::TM_CCORR,0-1之間,我用的這個(gè);

cv::TM_CCOEFF 判斷 maxVal 越大,效果越好
采用模板與目標(biāo)圖像像素與各自圖像的平均值計(jì)算dot product,正值越大匹配度越高,負(fù)值越大圖像的區(qū)別越大,但如果圖像沒有明顯的特征(即圖像中的像素值與平均值接近)則返回值越接近0;

cv::TM_CCOEFF_NORMED 判斷 maxVal 越接近1,效果越好
范化的cv::TM_CCOEFF,-1 ~ 1之間。

2 minMaxLoc()函數(shù)

查找全局最小和最大稀疏數(shù)組元素并返回其值及其位置

void minMaxLoc(const SparseMat& a, double* minVal,double* maxVal, int* minIdx=0, int* maxIdx=0);

a: 匹配結(jié)果矩陣
&minVal 和 &maxVal: 在矩陣 result 中存儲(chǔ)的最小值和最大值
&minLoc 和 &maxLoc: 在結(jié)果矩陣中最小值和最大值的坐標(biāo).

到此這篇關(guān)于opencv C++模板匹配的文章就介紹到這了,更多相關(guān)opencv 模板匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言利用sprintf固定字符串輸出位數(shù)

    C語(yǔ)言利用sprintf固定字符串輸出位數(shù)

    sprintf?函數(shù)是一個(gè)?C?語(yǔ)言中的函數(shù),也被許多其他編程語(yǔ)言所支持。這篇文章主要介紹了C語(yǔ)言如何利用sprintf固定字符串輸出位數(shù),需要的可以參考一下
    2023-03-03
  • 基于Matlab實(shí)現(xiàn)數(shù)字音頻分析處理系統(tǒng)

    基于Matlab實(shí)現(xiàn)數(shù)字音頻分析處理系統(tǒng)

    這篇文章主要為大家介紹了如何利用Matlab制作一個(gè)帶GUI的數(shù)字音頻分析與處理系統(tǒng)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02
  • C語(yǔ)言編寫簡(jiǎn)單的定時(shí)關(guān)機(jī)程序

    C語(yǔ)言編寫簡(jiǎn)單的定時(shí)關(guān)機(jī)程序

    本文給大家分享的是一則C語(yǔ)言編寫的簡(jiǎn)單的定時(shí)關(guān)機(jī)程序,可以設(shè)置0-600秒倒計(jì)時(shí),有需要的小伙伴可以參考下。
    2016-02-02
  • C++ std::map幾種遍歷方式(正序倒序)

    C++ std::map幾種遍歷方式(正序倒序)

    這篇文章主要介紹了C++ std::map幾種遍歷方式,包含正序遍歷和倒序遍歷,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • C++實(shí)現(xiàn)迷宮生成與解決

    C++實(shí)現(xiàn)迷宮生成與解決

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)迷宮生成與解決,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 詳解C++作用域與生命周期

    詳解C++作用域與生命周期

    這篇文章主要介紹了C++作用域與生命周期的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • C++中的循環(huán)引用

    C++中的循環(huán)引用

    雖然C++11引入了智能指針的,但是開發(fā)人員在與內(nèi)存的斗爭(zhēng)問題上并沒有解放,如果我門實(shí)用不當(dāng)仍然有內(nèi)存泄漏問題,其中智能指針的循環(huán)引用缺陷是最大的問題。下面通過實(shí)例代碼給大家介紹c++中的循環(huán)引用,一起看看吧
    2017-09-09
  • VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法

    VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法

    這篇文章主要介紹了VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法,需要的朋友可以參考下
    2017-03-03
  • C++ Primer Plus詳解

    C++ Primer Plus詳解

    這篇文章主要為大家詳細(xì)介紹了C++ Primer Plus,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++實(shí)現(xiàn)T型插補(bǔ)詳解

    C++實(shí)現(xiàn)T型插補(bǔ)詳解

    這篇文章主要介紹了C++實(shí)現(xiàn)T型插補(bǔ),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10

最新評(píng)論

绍兴县| 肃北| 增城市| 荣昌县| 山东省| 韩城市| 柳河县| 商丘市| 永济市| 海伦市| 乌拉特中旗| 许昌县| 宜黄县| 松原市| 上饶县| 会东县| 永顺县| 华池县| 甘泉县| 淮阳县| 永年县| 茂名市| 昭通市| 新野县| 广元市| 柯坪县| 桐柏县| 凤山县| 壤塘县| 南乐县| 蓬安县| 民乐县| 临沂市| 临汾市| 双流县| 朝阳县| 固原市| 九寨沟县| 东安县| 嘉兴市| 思茅市|