- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
cvNorm用法测量长度
cvNorm的用法
2009-09-29 16:03
CV_L1是一般的長度計算,CV_L2則是論文常用的歐幾里德距離,CV_C則是拿絕對值後的最大值,在圖形檢索比對這方面cvNorm()還算是不錯用的函式,cvNorm()還提供了遮罩的功能,可以將不必要的特徵資訊做掩蓋的功能,遮罩的部份就要參考前面圖形的Mask遮罩實作這地方,與前面圖形Mask使用原理相同.
在線性代數的部分Norm,為向量長度的意思,最常見的長度計算方式為1-Norm將所有向量數據取絕對值的總和,2-Norm為歐機里德距離,將所有數據平方在開根號,∞-Norm為將所有向量數據絕對值後取對大的那個,當然,這分別代表著CV_L1,CV_L2,CV_C的使用,在下面則用簡單的方式做cvNorm()的長度計算.
cvNorm()長度的計算#include cv.h#include stdio.h
float Array2[]={6,-1,2};
int main(){???? CvMat *Matrix2=cvCreateMat(1,3,CV_32FC1);???? cvSetData(Matrix2,Array2,Matrix2-step);
???? printf(1-norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_L1));???? printf(2-norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_L2));???? printf(Infininte norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_C));
???? system(pause);}
執行結果:
cvNorm()的輸出為一個double型別的數據,上面的程式可以簡單的看出來cvNorm()對長度的計算,要計算Matrix2的長度,則是要把第二個引數設置為空,而第二個引數的輸入則是代表著距離,在下面的程式碼範例會介紹到,對於長度的計算公式則是如下所示.
再來是長度計算Mask使用的範例,利用一個遮罩將不想被計算的數據給取消掉,0代表不想使用的數據,1代表要被計算的數據.
cvNorm()遮罩與長度的計算#include cv.h#include stdio.h
float Array2[]={6,-1,2};uchar MaskArray[]={1,1,0};
int main(){???? CvMat *Matrix2=cvCreateMat(1,3,CV_32FC1);???? CvMat *MaskMatrix=cvCreateMat(1,3,CV_8UC1);
???? cvSetData(Matrix2,Array2,Matrix2-step); ???? cvSetData(MaskMatrix,MaskArray,MaskMatrix-step);
???? printf(1-norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_L1,MaskMatrix));???? printf(2-norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_L2,MaskMatrix));???? printf(Infininte norm is : %.1f\n,cvNorm(Matrix2,NULL,CV_C,MaskMatrix));
???? system(pause);}
執行結果:
因此,實際上做長度計算的只有6跟-1這兩個數據,在這邊,遮罩的使用CvMat資料結構必須要用單通道非浮點數的數據型別,如CV_32FC1及CV_64FC1都是不可用來作遮罩矩陣的參數宣告.而矩陣也不可以用float及double的型別.遮罩長度的計算方式如下
再來,就是距離的計算了,它可以比較兩個向量的距離大小,也可以用許多向量的距離來做分數(Score)的參考目標,也就是說,在做圖形比對的時候,特徵值距離越小的兩張圖片某些特殊的特徵就越接近(看是用什麼方法擷取特徵值),因此,在一個龐大的圖形特徵資料庫中,將目標圖形的特徵值對每一筆資料做比對,可以藉由取得最小距離來找出最相似的圖形,距離的簡單例子就如下
cvNorm()距離的計算#include cv.h#include stdio.h
float Array1[]={6,-1,2};float Array2[]={5,3,1};int main(){???? CvMat *Matrix1=cvCreateMat(1,3,CV_32FC1);???? CvMat *Matrix2=cvCreateMat(1,3,CV_32FC1);??
您可能关注的文档
最近下载
- 质量功能展开QFD法(2025修订版).pdf VIP
- 2025年秋期人教版六年级上册数学全册核心素养教案(教学反思有内容+二次备课版).pdf
- 原发性醛固酮增多症诊断治疗的专家共识(2024版)解读PPT课件.pptx VIP
- T_CVMA 89—2021_规模化牛场牛结核病检测方法联用指南.pdf VIP
- 土建工程质量实测实量工作操作指引.doc VIP
- 2025年秋期人教版五年级上册数学全册核心素养教案(教学反思有内容+二次备课版).pdf
- 2025人教版八年级道德与法治上册全册知识点.pdf VIP
- 河北省高速机电标准化实施细则(修订版)6.10 .pdf VIP
- 制造业生产会议管理制度及流程.docx VIP
- 疼痛管理新理念与实践探索.pptx VIP
文档评论(0)