Re: [問題] 用opencv比較兩張圖片相似度

看板C_and_CPP (C/C++)作者 (該抓住的 要得著)時間16年前 (2009/10/05 20:33), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/3 (看更多)
IplImage * countImg = cvCreateImage(cvGetSize(pFrame), 8, 1); cvCmp( pFrame, pBkImg, countImg, CV_CMP_EQ ); CvScalar count = cvCountNonZero( countImg ); if( cout.val[0] > Height*Width/4 ) { printf("diff"); } //---- done ---- ※ 引述《EterneLilac (Eterne)》之銘言: : int H,W,DIFF=0,a,b; : CvScalar Scalar1; : CvScalar Scalar2; : for(H = 0;H<Height;H++) : { : for(W = 0;W<Width;W++) : { : Scalar1 = cvGet2D(pFrame,W,H); : Scalar2 = cvGet2D(pBkImg,W,H); : if(Scalar1 != Scalar2) : { : DIFF++; : } : } : } : if(DIFF>Height*Width/4) : { : printf("diff"); : } : 上面是我的片段程式碼,pFrame跟pBkImg是兩張圖片, : 我想將它們寫成迴圈一個點一個點來比對他們的顏色差, : 當總和誤差大於25%的時候就輸出 diff, : 但是CvScalar是個矩陣,不能直接寫!=來判斷, : error C2678: binary '!=' : no operator defined which takes a left-hand : operand of type 'struct CvScalar' (or there is no acceptable conversion) : 我測試的時候他都顯示上面這個錯誤, : 想請問改才能將矩陣變成一純量來比較, : 又或者有其他方式能比對圖片? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.94.123

10/05 23:49, , 1F
在if那個地方是count吧
10/05 23:49, 1F

10/10 01:12, , 2F
眼睛好利!
10/10 01:12, 2F
文章代碼(AID): #1AoUUdHP (C_and_CPP)
文章代碼(AID): #1AoUUdHP (C_and_CPP)