В настоящее время я пытаюсь загрузить файл .TIF в python, а затем сохранить его как изображение RGB и NIR.
Это код, который я использую / я пробовал:
%matplotlib notebook
import tifffile as tiff
import cv2
from matplotlib import pyplot as plt
import skimage.io
import numpy as np
import os
def load_images_from_folder(folder):
images = []
for filename in os.listdir(folder):
img = None
print(filename)
if filename.endswith('.TIF'):
img = cv2.imread(os.path.join(folder,filename), -1)
#img = tiff.imread(os.path.join(folder,filename))
#img = skimage.io.imread(os.path.join(folder,filename), plugin='tifffile')
if img is not None:
images.append(img)
b,g,r,nir = cv2.split(img)
image_rgb = np.stack([b,g,r], axis=2)
nir_normalized = cv2.normalize(nir,None,0,255,cv2.NORM_MINMAX)
image_rgb_normalized = cv2.normalize(image_rgb,None,0,255,cv2.NORM_MINMAX)
skimage.io.imsave("satellite_imagery_split/" + filename[:-4] + "_nir_normalized.png", np.array(nir_normalized, dtype = np.uint8 ))
skimage.io.imsave("satellite_imagery_split/" + filename[:-4] + "_rgb_normalized.png", np.array(image_rgb_normalized, dtype = np.uint8 ))
cv2.imwrite("satellite_imagery_split/" + filename[:-4] + "_nir_normalized.png", np.array(nir_normalized, dtype = np.uint8 ))
cv2.imwrite("satellite_imagery_split/" + filename[:-4] + "_rgb_normalized.png", np.array(image_rgb_normalized, dtype = np.uint8 ))
return images
images = load_images_from_folder('satellite_imagery/')
но никакой вариант не работает должным образом. С OpenCV у меня есть странные полосы по всему изображению:
![OpenCV RGB image](https://i.stack.imgur.com/vizbf.jpg)
И с изображением tiff и scikit-изображением, если есть этот странный цветовой эффект:
![Tiff and scikit RGB image](https://i.stack.imgur.com/kICZE.jpg)
Я пробовал разные комбинации с кодом выше, но ничто не дает мне надлежащих результатов. Но что очень странно, так это то, что с некоторыми изображениями (2 из 20) результат получается ожидаемым, поэтому изображения RGB и NIR выглядят правильно, но со всеми остальными я наблюдаю это странное поведение.
Можеткто-то скажет мне, что я делаю неправильно, потому что я открыл все изображения также с помощью Adobe Lightroom, и там все оригинальные четырехканальные изображения выглядят правильно.