#python #image #matplotlib #png #tiff
Вопрос:
Я использую ND2reader, чтобы объединить каждый цветовой канал (в моем случае 3) и экспортировать в tif. Это пример того, как это должно выглядеть: Исходное изображение, экспортированное из элементов Nis
но вместо этого я получаю это изображение, которое кажется полностью лишенным цветов. Изображение из экспортированного с помощью моего скрипта
выполняя анализ и сравнение изображений с помощью ImageMagick, кажется, что мой скрипт просто не сохраняет его как 16-битный или вообще не комбинирует как 16-битный. Есть какие-нибудь мысли?
Изображение из сценария -> > ImageFromND2_hour0.frame0.png PNG 512x512 512x512 0 0 8-bit sRGB 400303B 0.000u 0:00.002
Изображение из NisElements -> 31.5.21 alk ascending concentration_croppedt01xy01.tif TIFF 512x512 512x512 0 0 16-bit sRGB 1.51925MiB 0.031u 0:00.035
Вот мой код:
import time
start_time = time.time()
from nd2reader import ND2Reader, legacy
import cv2
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
# Print iterations progress
filelocation = 'Nd2 Conversion\31.5.21 ALK ascending concentration_Cropped.nd2'
from nd2reader import ND2Reader
with ND2Reader(filelocation) as images:
l = len(images) * images[0].metadata['fields_of_view'][-1]
addition = 100 / l
np.set_printoptions(precision=3)
numberoffiles = 0
for x in range(len(images)):
for fov in images[x].metadata['fields_of_view']:
c0 = images.parser.get_image_by_attributes(frame_number=x,field_of_view=fov,channel=0,z_level=0,height=512,width=512)
c1 = images.parser.get_image_by_attributes(frame_number=x,field_of_view=fov,channel=1,z_level=0,height=512,width=512)
c2 = images.parser.get_image_by_attributes(frame_number=x,field_of_view=fov,channel=2,z_level=0,height=512,width=512)
no_img = 3
imagefinal = c0/no_img c1/no_img c2/no_img
plt.imsave("Nd2 Conversion\ALK Cropped Python\ImageFromND2_hour" str(x) ".frame" str(fov) ".png", imagefinal)
numberoffiles = 1
print("Complete!")
print("--- %s seconds ---" % (time.time() - start_time))