Copy code code as follows:
Function Gethistograph (ImageData) {
var arr = [];
for (var I = 0; i <64; i ++) {
arr [i] = 0;
}
var data = Imagedata.data;
var power4 = math.pow (4, 2);
for (var I = 0, len = data.length; I <len; i += 4) {
var red = (data [i] / 64) | 0;
var green = (data [i + 1] / 64) | 0;
var blue = (data [i + 2] / 64) | 0;
var index = red * POW4 + Green * 4 + Blue;
arr [index] ++;
}
Return arr;
}
Function cosine (ARR1, ARR2) {
var axb = 0,
a = 0,
B = 0;
for (var I = 0, len = arr1.length; i <len; i ++) {
axb += ARR1 [i] * arr2 [i];
a += Arr1 [i] * arr1 [i];
b += arr2 [i] * arr2 [i];
}
Return axb / (math.sqrt (a) * math.sqrt (b));
}
Function Gray (Imgdata) {
var data = imgdata.data;
for (var I = 0, len = data.length; I <len; i += 4) {
var Gray = Parseint ((data [i] + data [i + 1] + data [i + 2]) / 3);
data [i + 2] = data [i + 1] = data [i] = Gray;
}
Return Imgdata;
}
There is a problem. If the picture is compared with the original picture, then it is necessary to be similar. You need to convert the pictures into gray. Even if the Gray function of the above code is used to process