1

unsigned short array(1次元)内に癌CT画像が格納されています。

画像内にがん領域の位置情報がありますが、座標 (x,y) はスーパーピクセル (128x128 unsigned short) です。私の仕事は、この地域を強調することです。

スーパーピクセル座標を unsigned short 配列に使用できるオフセットに変換することで、これを解決しました。それは正常に動作しますが、私のソリューションには 3 つのネストされた for ループが必要なので、この問題を解決するためのよりスマートな方法があるかどうか疑問に思います。

ushort配列「スーパーピクセルワイズ」にアクセスすることは可能ですか?スーパーピクセルでushort配列をナビゲートできます。

私はこれがうまくいかないことを知っています。私が考えていたことをあなたに伝えるために:

typedef struct 
{
   unsigned short[128x128]
} 
spix;

spix *spixptr;

unsigned short * bufptr = img->getBuf();

spixptr = bufptr;

更新 1:

はい、あいまいです。写真でもう一度試してみましょう。

[0][1][2] ... [127]| ... [x] |
[1]                |         |
[2]                |         |
.                  |         |
.                  | <-- this is a superpixel
.                  |         |
[127]              |         |
--------------------         |
.                            |
.                            |
.                            |
[y]                          |<--whole picture stored in a ushort* buf = new ushort[x*y]
------------------------------

ushortsポインターを使用して 128x128 に一度にアクセスするのが好きなのでmemcpy、128x128 フィールドにデータを入力できます。

更新 2:

bitblit 転送のヒントは大いに役立ちました。

4

2 に答える 2

1

これはかなり曖昧なので、答えるのが難しいです。

「この画像の定義が与えられた場合、(x,y) のピクセルにアクセスするにはどうすればよいか」ということだけを意味している場合、その答えはそれほど驚くべきことではありません。

typedef struct
{
    unsigned short data[128 * 128]; // This was broken in the question.
} spix;


void spix_set_pixel(spix *s, unsigned int x, unsigned int y, unsigned short value)
{
  s->data[y * 128 + x] = value;
}

これがあなたの質問に答えているかどうかはまったくわかりませんが、少なくとももっともらしい.

于 2008-11-24T14:05:20.207 に答える
0

私があなたが持っていると理解していることから:

  • CTスキャンである大きな画像
  • その画像内の癌である長方形の領域

そうすると、理解するのが少し難しくなります。ある種のクラスを作成して、画像の128x128ブロックに単一のピクセルであるかのように効果的にアクセスできるようにしたいと思います。

したがって、画像が1024x1024ピクセルの場合、128x128ピクセルブロックの8x8グリッドとして画像にアクセスできるようにする必要があります。この場合、必要なのは、これらの128x128ブロックの1つを表すクラスを作成することです。このクラスは、画像データをコピーしないように画像を参照する必要があり、その「スーパーピクセル」で実行するすべての操作が含まれている必要があります。

ただし、大きな画像から特定の128x128ブロックを抽出できるようにするだけの場合、必要なのはビットブリットアルゴリズムです。ビットブロック転送(通常は単にブリットと呼ばれます)を使用すると、選択したデータのビットを大きな画像から小さな画像にコピーできます。このアルゴリズムは、大きな画像の特定の領域に対して必要なほとんどすべてのことを実行するように適合させることもできます。

ブリットだけが必要な場合は、比較的最新のグラフィックAPIすべてにブリット関数が必要です。

于 2008-11-24T14:51:18.897 に答える