如何在XTK中更改像素值 [英] How to change a pixel value in XTK

查看:123
本文介绍了如何在XTK中更改像素值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何更改标签图的像素值.

I would like to know how to change a pixel value for the label map.

这是我最初的方法.不幸的是,所做的更改未反映在画布中.

This is my initial approach. Unfortunately, the changes are not reflected in the canvas.

X.volume.prototype.SetPixelLabelMap = function(i, j, k, value){
  this._labelmap._IJKVolume[k][j][i] = value;

  var color = this._labelmap._colortable._map.get(value);

  var changeRawData = function(rawdata, pos){
    for(var n = 0; n < 4; n++){
      rawdata[pos + n] = color[n + 1];
    }
  }

  var dim = this._dimensions;
  //in Z axis height is j width is i, the fast moving direction is the height
  if(this._labelmap._children[2]._children[k]){
    changeRawData(this._labelmap._children[2]._children[k]._texture._rawData, (dim[0]*i + j)*4);
  }

  //in Y axis height is k width is i
  if(this._labelmap._children[1]._children[j]){
    changeRawData(this._labelmap._children[1]._children[j]._texture._rawData, (dim[0]*i + k)*4);
  }
  
  if(this._labelmap._children[0]._children[i]){
    //in X axis height is j width is k
    changeRawData(this._labelmap._children[0]._children[i]._texture._rawData, (dim[2]*k + j)*4);
  }

}

推荐答案

您可以使用

dims = volume.labelmap.dimensions;
zm = dims[0];
ym = dims[1];
xm = dims[2];
  for (var x = 0; x < xm; x++)
    for (var y = 0; y < ym; y++)
      for (var z = 0; z < zm; z++)
        volume.labelmap.$[x][y][z] = 5; // some number
//volume.labelmap.modified();
volume.sliceInfoChanged(0);
volume.sliceInfoChanged(1);
volume.sliceInfoChanged(2);

JSFiddle

这篇关于如何在XTK中更改像素值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆