ドキュメントの類似性を測定するために使用される Bag-of-words モデルに似たものを使用できると思います。これを見てください:リンク
以下の方程式を再現しています。
G = X'*X
ここで、X = [x1 x2 ... xn]
あなたの場合、画像の正規化されたヒストグラムをベクトル xi として使用します。
このアプローチでは画像のサイズを変更する必要はなく、高速になると思います。
編集
opencvサンプルで提供されているいくつかのサンプル画像を使用して、Matlabでこれを試しました:
im1 = imread('baboon.jpg');
im2 = imread('board.jpg');
im3 = imread('fruits.jpg');
im4 = imread('fruits - small.jpg'); % fruits.jpg scaled down 25% using mspaint
% using grayscale for simplicity
gr1 = rgb2gray(im1);
gr2 = rgb2gray(im2);
gr3 = rgb2gray(im3);
gr4 = rgb2gray(im4);
[cnt_baboon, x] = imhist(gr1);
[cnt_board, x] = imhist(gr2);
[cnt_fruits, x] = imhist(gr3);
[cnt_fruits_small, x] = imhist(gr4);
% X: not normalized
X = [cnt_baboon cnt_board cnt_fruits cnt_fruits_small];
H = X'*X;
N = sqrt(diag(H)*diag(H)');
% normalize. this would be faster
G = H./N
結果の G 行列:
G =
1.0000 0.8460 0.7748 0.7729
0.8460 1.0000 0.8741 0.8686
0.7748 0.8741 1.0000 0.9947
0.7729 0.8686 0.9947 1.0000
G(3,4) (および G(4,3)) が 1 に非常に近いことがわかります。