2017-11-20 18 views
0

私はimagejを使って画像を表示する必要があります。だから私は次のコードを使用しました:imagejは常に黒い画像を表示します

FloatProcessor abc=new FloatProcessor(imageSizeX,imageSizeY); 
     for (int i=0;i<imageSizeX;i++){ 
       for(int j=0;j<imageSizeY;j++){ 
       abc.putPixel(i, j, 100); 
       } 
     } 
     ImagePlus im=new ImagePlus("test",abc); 
     im.show(); 

しかし、私が得た画像は常に完全に黒です。間違いが何であるか教えていただけますか? 値が0の場合は少なくとも白でなければなりませんか? (FYI:imageSizeX = imageSizeY = 256)

+0

[FloatProcessor.putPixel()](https://imagej.nih.gov/ij/developer/api/ij/process/ImageProcessor.html#putPixel-int-int-int-)APIを参照してください:_ "floatイメージの場合、 'value'はFloat.floatToIntBits()を使用してintに変換されたfloat型になると予想されます。" _浮動小数点値がどのような値であるかは不明ですが、 'Float.floatToIntBits(1.0)'または類似 – phflack

答えて

0

.putPixelは、変換を使用します。

ピクセルに直接アクセスする場合は、setf(int x, int y, float value)を使用できます。

さらに、既にピクセルを配列に格納している場合は、コンストラクタを使用してすぐにピクセル値FloatProcessor(int width, int height, int[] pixels)を設定できます。

関連する問題