[問題] 用opencv比較兩張圖片相似度
看板C_and_CPP (C/C++)作者EterneLilac (Eterne)時間16年前 (2009/10/05 17:52)推噓0(0推 0噓 0→)留言0則, 0人參與討論串1/3 (看更多)
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: 123.205.82.152
※ 編輯: EterneLilac 來自: 123.205.82.152 (10/05 17:54)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章