比如 a图片、b图片。。并不是完全一样的,有可能是百分之30 ,怎么得到这个30的相似度了
只要能得到相似度就可以了

解决方案 »

  1.   


    //说明,bmp1,bmp2必须大小一致,位深度假设为24位的
    function GetSimilar(bmp1,bmp2 : TBitmap) : single;
      var ps,pd : pbytearray;
          ncount,i ,j: integer;
          color1,color2 : tcolor;
    begin
      ncount := 0;
      for i := 0 to bmp1.height - 1 do
      begin
        ps := bmp1.Scanline[i];
        pd := bmp2.Scanline[i];
        for j := 0 to bmp1.width - 1 do
        begin
          color1 := RGB(ps[j * 3 + 2],ps[j * 3 + 1],ps[j * 3]);
          color2 := RGB(pd[j * 3 + 2],pd[j * 3 + 1],pd[j * 3]);
          if color1 = color2 then inc(ncount);
        end;
      end;
      result := ncount / bmp1.width * bmp1.Height;
    end;
    木有测试....