Re: [問題] 用opencv比較兩張圖片相似度
看板C_and_CPP (C/C++)作者lostmyself (該抓住的 要得著)時間16年前 (2009/10/05 20:33)推噓0(0推 0噓 2→)留言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
10/05 23:49, 1F
→
10/10 01:12, , 2F
10/10 01:12, 2F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章