2014-03-13 81 views
2
pixelArr = [11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11..] 
    if (pixelArr != null) 
      { 
       for (var i = 0, n = pixelArr.length; i < n; i++) 
       { 
        pix = pixelArr[i]; 
        pix = ApplyWL(pix, imagewc, imageww); 
        pix = lutArr[pix]; 

        // var red = (pix & 0x00ff0000) >> 16; 
        v = i * 4; 
        imagedata[v] = pix & 0xff; 
        imagedata[v + 1] = (pix >>> 8) & 0xff; 
        imagedata[v + 2] = (pix >>> 16) & 0xff; 
        imagedata[v + 3] = 255; 
       } 
       // offscreenCtx.imageSmoothingEnabled = true; 
       offscreenCtx.putImageData(g, 0, 0); 
      } 
function ApplyWL(value, _valwindowCenter, _valwindowWidth) 
     { 
      Recalculate(_valwindowCenter, _valwindowWidth); 
      if (value <= _windowStart) 
       value = _minimumOutputValue; 
      else if (value > _windowEnd) 
       value = _maximumOutputValue; 
      else 
      { 
       value = Math.round((((value - _windowCenterMin05)/_windowWidthMin1) + 0.5) * 255.0); 
      } 
      return value; 
     } 

     var _minimumOutputValue = 0; 
     var _maximumOutputValue = 255; 
     function Recalculate(_valwindowCenter, _valwindowWidth) 
     { 
      if (!_valid) 
      { 
       _windowCenterMin05 = _valwindowCenter - 0.5; 
       _windowWidthMin1 = _valwindowWidth - 1; 
       _windowWidthDiv2 = _windowWidthMin1/2; 
       _windowStart = (_windowCenterMin05 - _windowWidthDiv2); 
       _windowEnd = (_windowCenterMin05 + _windowWidthDiv2); 
       _valid = true; 
      } 
     } 


Width<input id="text1" type="text" /> 
    center<input id="text2" type="text" /> 
    <input id="Button1" type="button" value="Apply" onclick="ApplyWLCust();" /> 
    </br> time required<input id="text3" type="text" /> 
    <canvas style="height: 500px; width: 500px; display1: none; background-color: black; 
       border: 1px solid red;" id="offscreenCanvas"> 

我已經在Canvas醫學圖像(CR)上應用窗口調整。 以便我從C#組件獲取像素數組。 點擊按鈕我有調用函數ApplyWLCust(); 在這個功能中,所有的過程都完成了。 對於窗口調平,使用位移 ,而移位大約需要585ms。 我必須減少這個時間,我應該怎麼做 任何解決方案 請建議。如何加快窗口調平(亮度,對比度)

+0

首先不會使用jQuery來迭代循環,而是使用vanilla()。其次:使用類型數組而不是數組。 – K3N

+0

如何用一些代碼詳細說明 – John

+0

當您想要執行像素級操作時,您應該考慮使用帶有像素着色器的WebGL。這樣你可以使用硬件加速。 – Philipp

回答

0

我會考慮並行執行。它至少應該把執行時間減半。

看看這個庫:http://adambom.github.io/parallel.js/


我假設你有大陣。 給予每個並行執行陣列和從和索引。 例如:

  • ParallelExecution1將處理元件從0到100
  • ParallelExecution2將處理元件101到200
  • ParallelExecution3將處理從201到元件300
  • ...
相關問題