色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV邊緣模板匹配算法原理詳解

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-12-07 10:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景概述

OpenCV中自帶的模板匹配算法,完全是像素基本的模板匹配,特別容易受到光照影響,光照稍微有所不同,該方法就會歇菜了!搞得很多OpenCV初學者剛學習到該方法時候很開心,一用該方法馬上很傷心,悲喜交加,充分感受到了理想與現實的距離,不過沒關系,這里介紹一種新的模板匹配算法,主要是基于圖像邊緣梯度,它對圖像光照與像素遷移都有很強的抗干擾能力,據說Halcon的模板匹配就是基于此的加速版本,在工業應用場景中已經得到廣泛使用。

算法原理

該算法主要是基于圖像梯度,實現基于梯度級別的NCC模板匹配,基于Sobel梯度算子得到dx, dy, magnitude

1b916480-94a8-11ee-939d-92fbcf53809c.jpg

通過Canny算法得到邊緣圖像、基于輪廓發現得到所有的輪廓點集,基于每個點計算該點的dx、dy、magnitude(dxy)三個值。生成模板信息。然后對輸入的圖像進行Sobel梯度圖像之后,根據模型信息進行匹配,這樣的好處有兩個:

梯度對光照有很強的抗干擾能力,對模板匹配的抗光照干擾

基于梯度匹配,可以對目標圖像上出現的微小像素遷移進行抵消。

1b9cc960-94a8-11ee-939d-92fbcf53809c.jpg

算法實現代碼詳解

梯度圖像計算

Matgx,gy;
Sobel(gray,gx,CV_32F,1,0);
Sobel(gray,gy,CV_32F,0,1);

Matmagnitude,direction;
cartToPolar(gx,gy,magnitude,direction);
longcontoursLength=0;
doublemagnitudeTemp=0;
intoriginx=contours[0][0].x;
intoriginy=contours[0][0].y;

模板生成

//提取dxdymaglog信息
vector>contoursInfo;
//提取相對坐標位置
vector>contoursRelative;

//開始提取
for(inti=0;i(n));
vectorpoints(n);
for(intj=0;j(y,x);
pointInfo.DerivativeY=gy.at(y,x);
magnitudeTemp=magnitude.at(y,x);
pointInfo.Magnitude=magnitudeTemp;
if(magnitudeTemp!=0)
pointInfo.MagnitudeN=1/magnitudeTemp;
contoursInfo[i][j]=pointInfo;
}
contoursRelative.push_back(points);
}

計算目標圖像梯度

//計算目標圖像梯度
MatgrayImage;
cvtColor(src,grayImage,COLOR_BGR2GRAY);
Matgradx,grady;
Sobel(grayImage,gradx,CV_32F,1,0);
Sobel(grayImage,grady,CV_32F,0,1);

Matmag,angle;
cartToPolar(gradx,grady,mag,angle);

NCC模板匹配

doublepartialScore=0;
doubleresultScore=0;
intresultX=0;
intresultY=0;
doublestart=(double)getTickCount();
for(introw=0;rowgrayImage.cols-1||curY>grayImage.rows-1){
continue;
}

//目標邊緣梯度
doublesdx=gradx.at(curY,curX);
doublesdy=grady.at(curY,curX);

//模板邊緣梯度
doubletdx=contoursInfo[m][n].DerivativeX;
doubletdy=contoursInfo[m][n].DerivativeY;

//計算匹配
if((sdy!=0||sdx!=0)&&(tdx!=0||tdy!=0))
{
doublenMagnitude=mag.at(curY,curX);
if(nMagnitude!=0)
sum+=(sdx*tdx+sdy*tdy)*contoursInfo[m][n].MagnitudeN/nMagnitude;
}

//任意節點score之和必須大于最小閾值
partialScore=sum/num;
if(partialScoreresultScore)
{
resultScore=partialScore;
resultX=col;
resultY=row;
}
}
}

運行效果

正常光照

光照非常暗

改進:

不需要全局匹配,可以對目標圖像先做一個小梯度閾值,然后再進行匹配,提升速度、構造目標圖像金字塔,實現多分辨率模板匹配支持!

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4707

    瀏覽量

    95201
  • 模板
    +關注

    關注

    0

    文章

    109

    瀏覽量

    20854
  • 代碼
    +關注

    關注

    30

    文章

    4895

    瀏覽量

    70548
  • OpenCV
    +關注

    關注

    32

    文章

    642

    瀏覽量

    42748

原文標題:干貨 | OpenCV實現邊緣模板匹配算法

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是模板匹配模板匹配的原理講解 圖像處理與模板匹配算法

    一:什么是模板匹配? 在OpenCV教程中這樣解釋模板匹配模板
    的頭像 發表于 05-05 09:25 ?3.6w次閱讀
    什么是<b class='flag-5'>模板</b><b class='flag-5'>匹配</b>?<b class='flag-5'>模板</b><b class='flag-5'>匹配</b>的原理講解 圖像處理與<b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>

    基于LockAI視覺識別模塊:C++模板匹配

    、機器人導航等領域。 局限性:模板匹配對旋轉、縮放和光照變化較為敏感,因此通常需要結合其他技術來提高魯棒性。 1.2 模板匹配的流程 獲取輸入圖像和
    發表于 05-13 14:40

    基于LockAI視覺識別模塊:C++多模板匹配

    模板匹配的流程 獲取輸入圖像和多個模板圖像。 遍歷每個模板,逐一執行模板匹配
    發表于 05-14 15:00

    基于Qualcomm FastCv的邊緣檢測算法詳解

    檢測它的邊緣。二.算法分類邊緣檢測法的種類很多,如微分算子法、樣板匹配法、小波檢測法、神經網絡法等等,每一類檢測法又有不同的具體方法。目前,微分算子法中有Roberts,Sobel,P
    發表于 09-21 11:45

    openCV的庫自帶了模板匹配算法嗎?

    openCV的庫自帶了模板匹配算法
    發表于 10-10 06:48

    基于改進模板匹配的芯片缺陷檢測方法

    提出了一種改進的模板匹配方法。該方法是在傳統的模板匹配方法的基礎上,通過對模板匹配
    發表于 09-03 15:15 ?9次下載

    模板匹配

    OpenCV3編程入門》書本配套源代碼:模板匹配
    發表于 06-06 15:39 ?5次下載

    OpenCV3編程入門-源碼例程全集-模板匹配

    OpenCV3編程入門-源碼例程全集-模板匹配
    發表于 09-17 22:55 ?4次下載

    機器視覺中基于灰度統計的快速模板匹配算法詳細概述

    本文針對傳統的基于灰度值的匹配算法計算量大、時間復雜度高的缺陷,提出了一種基于灰度統計的快速模板匹配算法。以十字特征直線代替
    發表于 08-18 15:53 ?7次下載
    機器視覺中基于灰度統計的快速<b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>詳細概述

    融合邊緣特征的立體匹配算法Edge-Gray

    為保證SAD算法的立體匹配效率,提高匹配精度,提出一種融合邊緣特征的立體匹配算法 Edge-gr
    發表于 04-29 11:06 ?8次下載
    融合<b class='flag-5'>邊緣</b>特征的立體<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>Edge-Gray

    探究halcon模板匹配干擾邊緣消除辦法

    最近做了個項目,遇到一個問題,就是在創建形狀匹配模板時候,干擾太多,像麻繩一樣。 使用自定義區域去消除吧,因為輪廓長,邊緣干擾距離近,操作起來不方便; 使用CAD圖形創建模板吧,又因為
    的頭像 發表于 05-29 13:42 ?5326次閱讀

    基于邊緣模板匹配適用部分遮擋和光照變化情形(附源碼)

    介紹 模板匹配是一個圖像處理問題,當其姿態(X,Y,θ)未知時,使用另一張搜索圖像中的模板圖像找到對象的位置。在本文中,我們實現了一種算法,該算法
    的頭像 發表于 10-13 15:20 ?3615次閱讀
    基于<b class='flag-5'>邊緣</b>的<b class='flag-5'>模板</b><b class='flag-5'>匹配</b>適用部分遮擋和光照變化情形(附源碼)

    OpenMV如何實現旋轉模板匹配

    OpenCV模板匹配不支持旋轉角度、不支持多尺度跟多對象模板匹配,同時匹配速度比較慢,針對不支
    的頭像 發表于 01-14 10:21 ?2204次閱讀

    模板匹配算法的改進及在自動發牌機中的應用

    電子發燒友網站提供《模板匹配算法的改進及在自動發牌機中的應用.pdf》資料免費下載
    發表于 11-08 09:53 ?0次下載
    <b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>的改進及在自動發牌機中的應用

    手寫圖像模板匹配算法OpenCV中的實現

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導致無法正確設定閾值范圍,所以問題很多。于是我重新寫了
    的頭像 發表于 11-11 10:12 ?741次閱讀
    手寫圖像<b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>在<b class='flag-5'>OpenCV</b>中的實現
    主站蜘蛛池模板: 久久久久久久网站 | 色网址在线观看 | 海角社区在线视频播放观看 | 精品夜夜澡人妻无码AV蜜桃 | 涩涩免费视频软件 | 亚洲国产欧美日韩在线一区 | 女人会操出水图 | 成年人视频在线免费看 | 色狠狠色综合吹潮 | 综合人妻久久一区二区精品 | 亚洲 欧美 中文 日韩 视频 | 99精品视频在线观看 | BL低喘贯穿顶弄老师H | 亚洲精品一区二区在线看片 | 人体内射精一区二区三区 | 久久久99精品成人片中文 | 老师的丝袜脚 | 成年人在线免费观看视频网站 | 国产亚洲欧美高清在线 | 亚婷婷洲AV久久蜜臀无码 | 日韩欧美国产免费看清风阁 | 国语自产一区第二页 | 欧美极限扩肛 | 长泽梓黑人初解禁bdd07 | 海角社区在线视频播放观看 | 红色机尾快播 | 香港日本三级亚洲三级 | 精品人妻一区二区三区视频53 | WWW国产亚洲精品久久久日本 | 在线不卡中文字幕 | 嗯啊插的好深啊使劲抽视频 | 亚洲国产精品天堂在线播放 | 美女夫妻内射潮视频 | 丰满的寡妇hd高清在线观看 | 国产精品点击进入在线影院高清 | 九九热在线免费观看 | 亚洲AV无码专区国产乱码网站 | 国产色精品VR一区二区 | 亚洲在线成色综合网站 | 内射人妻无码色AV麻豆去百度搜 | 野花日本完整版在线观看免费高清 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品