Dicom ファイルから画像を印刷しようとしています。生データを convertToFormat_RGB888 関数に渡します。私の知る限り、Qt はモノクロの 16 ビット イメージを処理できません。
元の画像は次のとおりです (ここでは jpg に変換されています): http://imageshack.us/photo/my-images/839/16bitc.jpg/
bool convertToFormat_RGB888(gdcm::Image const & gimage, char *buffer, QImage* &imageQt)
この関数の中で、私はこの中に入ります...
...
else if (gimage.GetPixelFormat() == gdcm::PixelFormat::UINT16)
{
short *buffer16 = (short*)buffer;
unsigned char *ubuffer = new unsigned char[dimX*dimY*3];
unsigned char *pubuffer = ubuffer;
for (unsigned int i = 0; i < dimX*dimY; i++)
{
*pubuffer++ = *buffer16;
*pubuffer++ = *buffer16;
*pubuffer++ = *buffer16;
buffer16++;
}
imageQt = new QImage(ubuffer, dimX, dimY, QImage::Format_RGB888);
...
このコードは、ここから少し適応したものです: gdcm.sourceforge.net/2.0/html/ConvertToQImage_8cxx-example.html
しかし、元のものは実行エラーが発生しました。少なくとも私のものを使用すると、画像が得られますが、同じではありません。
これが新しい画像です (ここでは jpg に変換されています): http://imageshack.us/photo/my-images/204/8bitz.jpg/
私は何を間違っていますか?ありがとう。