다음과 같이 코드 코드를 복사하십시오.
기능 gethistograp (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 = (데이터 [i] / 64) |.
var green = (데이터 [i + 1] / 64) |
var blue = (데이터 [i + 2] / 64) |
var index = red * pow4 + green * 4 + blue;
ARR [index] ++;
}
반환 ARR;
}
기능 코사인 (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];
}
반환 axb / (Math.sqrt (a) * math.sqrt (b));
}
함수 그레이 (imgdata) {
var data = imgdata.data;
for (var i = 0, len = data.length; i <len; i += 4) {
var grey = parseint ((데이터 [i] + 데이터 [i + 1] + 데이터 [i + 2]) / 3);
데이터 [i + 2] = data [i + 1] = data [i] = 회색;
}
반환 IMGDATA;
}
문제가 있습니다. 그림이 원래 그림과 비교되면 위의 코드의 회색 기능이 처리 되더라도 비슷해야합니다.