需要在Nuget中引入 Nifti.Net库,具体代码如下:
string fileName = "D:/panda.bmp";
// Load 32-bit float Bitmap image
var bitmap = new Bitmap(fileName);
var width = bitmap.Width;
var height = bitmap.Height;
// Create NIFTI image header
var header = new NiftiHeader();
header.dim[0] = 1;
header.dim[1] = (short)width;
header.dim[2] = (short)height;
header.dim[3] = 1;
header.datatype = NiftiHeader.NIFTI_TYPE_UINT8;
header.bitpix = 1;
header.pixdim[1] = 1;
header.pixdim[2] = 1;
header.pixdim[3] = 1;
header.magic[0] = (byte)'n';
header.magic[1] = (byte)'+';
header.magic[2] = (byte)'1';
header.magic[3] = (byte)'\0';
// Convert Bitmap to NIFTI pixel data
var pixelData = new byte[width * height];
for (var y = 0; y < height; y++)
{
for (var x = 0; x < width; x++)
{
var pixel = bitmap.GetPixel(x, y);
var value = (byte)(0.299 * pixel.R + 0.587 * pixel.G + 0.114 * pixel.B);
pixelData[x + y * width] = value;
}
}
var tem = new Nifti<byte>();
tem.Header = header;
tem.Data = pixelData;
NiftiFile.Write(tem, fileName + ".nii");
该代码示例展示了如何在C#中通过Nuget引入Nifti.Net库,将一个32位浮点数Bitmap图像转换为NIFTI格式。首先创建NIFTI头信息,然后将Bitmap像素数据转换为NIFTI像素数据,并保存为.nii文件。

6702

被折叠的 条评论
为什么被折叠?



