js實現的圖片相似度演算法程式碼

admin發表於2017-03-19

有時候需要必須圖片的相似度,下面是一段來源於網路上的程式碼給大家分享一樣,具體實現過程這裡不多介紹了,有興趣的朋友可以自行分析一下,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function getHistogram(imageData) {
  var arr = [];
  for (var i = 0; i < 64; i++){
    arr[i] = 0;
  }
  var data = imageData.data;
  var pow4 = 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;
}

相關文章