<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Dear Nibabel experts,</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I'm trying to create an RGB nifti image from a PNG file. I've been messing around with a working RGB nifti, in order to mimic the datatype found in its header. So far I've managed to convert the image pixel-wise with for loops, which is very slow. Do you know how this could be done in a faster way?</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">My code:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><div class="gmail_default">import numpy as np</div><div class="gmail_default">import Image</div><div class="gmail_default">import nibabel as nib</div><div class="gmail_default"><br></div></div><div class="gmail_default" style=""><div class="gmail_default" style=""><font face="tahoma, sans-serif">p = '/home/fernando/test/nii_rgb/TC1.png'</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">im = Image.open(p)</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">data = np.array(im)</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">data = np.rot90(data)</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">rgb = np.zeros((data.shape[0], data.shape[1], 1, 1), [('R', 'u1'), ('G', 'u1'), ('B', 'u1')])</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">for i in range(data.shape[0]):</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">    for j in range(data.shape[1]):</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">        rgb[i, j] = tuple(data[i, j, :])</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">nii = nib.Nifti1Image(rgb, np.eye(4))</font></div><div class="gmail_default" style=""><font face="tahoma, sans-serif">nib.save(nii, p.replace('png', 'nii'))</font></div></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Thanks in advance,</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Fernando</div></div>