C# 实现将Bitmap转化为Nifti文件

该代码示例展示了如何在C#中通过Nuget引入Nifti.Net库,将一个32位浮点数Bitmap图像转换为NIFTI格式。首先创建NIFTI头信息,然后将Bitmap像素数据转换为NIFTI像素数据,并保存为.nii文件。

需要在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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影像熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值