c# ClearCanvas ライブラリを使用して画像ビューアーを作成しています。保存されたウィンドウの中心とウィンドウの幅の値を画像に適用して画像を表示しようとしています。これを行うには、ウィンドウの中心、ウィンドウの幅、およびバイト配列に変換する Dicom ファイルから生のピクセル データを読み取り、次のコードを使用してウィンドウの設定を適用します。
int lower_bound = window_center - window_width / 2;
int upper_bound = window_center + window_width / 2;
//copy matrix and do window caluclations
float[] wlpixels = new float[pixels.Length];
for (int i = 0; i < w * h; i++)
{
if (pixels[i] <= lower_bound)
wlpixels[i] = 0;
else if (pixels[i] > upper_bound)
wlpixels[i] = 255;
else
{
wlpixels[i] = ((pixels[i] - lower_bound) / window_width) * 255;
}
}
これは、一部の画像では魅力的に機能しますが、他の画像、特にウィンドウの中心値が低いか負の値の場合、正しく表示されません。それらは、白であってはならない大量の白いピクセルで表示されます。
ウィンドウ/レベルの計算を正しく行っていますか? そうでない場合、どうすれば正しく行うことができますか? もしそうなら、これをすべてのシナリオで機能させるには、他に何をする必要がありますか?