簡體   English   中英

JS硬件加速圖像比較

[英]JS hardware-accelerated image comparison

我可以用類似以下方法來度量畫布中加載的兩個圖像之間的差異:

<canvas id="canvas1" width="255" height="255"></canvas>
<canvas id="canvas2" width="255" height="255"></canvas>

<script>

// THIS FUNCTION IS THE MOST RELEVANT BIT:
function getSumSq (ctx1, ctx2) {
  var
    i,
    sumSq = 0,
    w = 255, h= 255,
    numPixelComponents = w * h * 4,
    data1 = ctx1.getImageData(0, 0, w, h).data,
    data2 = ctx2.getImageData(0, 0, w, h).data;

  for (i = 0; i < numPixelComponents - 3; i += 4) {
    sumSq += Math.pow(data1[i] - data2[i], 2) +
      Math.pow(data1[i + 1] - data2[i + 1], 2) +
      Math.pow(data1[i + 2] - data2[i + 2], 2);
    // no transparency so ignore i + 3, the alpha channel.
  }

  return sumSq;
}

var c1 = document.getElementById('canvas1');
var ctx1 = c1.getContext('2d');
var img1 = new Image();
img1.src = 'img1.png';
img1.onload = function() {
  ctx1.drawImage(img1, 0, 0);
  var c2 = document.getElementById('canvas2');
  var ctx2 = c2.getContext('2d');
  var img2 = new Image();
  img2.src = 'img2.png';
  img2.onload = function() {
    ctx2.drawImage(img2, 0, 0);
    console.log(getSumSq(ctx1, ctx2));
  };
};

</script>

我想使用畫布來處理大量圖像。 是否有瀏覽器支持硬件加速的方式來測量畫布中加載的兩個圖像之間的差異?

我找不到執行此操作的方法-猜測答案是否定的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM