Как встроить гиперспектральное изображение в Qlabel с помощью PyQt5 в Python?
Я использовал Qpixmap для встраивания обычного изображения в Qlabel в пользовательский интерфейс, и он отлично работает, но когда я пытаюсь встроить гиперспектральное изображение, он показывает ошибку
Ниже приведен используемый код -
`используемая библиотека - rasterio
img = rs.open('HYP.tif')
profile = img.profile
profile.update(count=3, compress='lzw')
full_img = img.read()
band1 = int(input('band number 1:'))
band2 = int(input('band number 2:'))
band3 = int(input('band number 3:'))
b1 = img.read(band1)
b2 = img.read(band2)
b3 = img.read(band3)
def normalize(array):
#Normalizes numpy arrays into scale 0.0 - 1.0
array_min, array_max = array.min(), array.max()
return (array - array_min) / (array_max - array_min)
# Normalize the bands
redn = normalize(b3)
greenn = normalize(b2)
bluen = normalize(b1)
rgb = np.dstack((bluen, redn, greenn))
rgb1 = rgb.T
rasterio.plot.show(rgb1)
rgb3 = rgb1 / rgb1.max()
rgb3 = rgb3 * 255
rgb3 = rgb3.astype(numpy.uint32)
rasterio.plot.show(rgb3)
file_list = [rgb1.read, greenn, bluen]
with rs.open('outimg.png', 'w', **profile) as dest:
for band_nr, src in enumerate(file_list, start=1):
dest.write(src, band_nr)
self.label_2.setPixmap(QtGui.QPixmap('outimg.png'))
`
Когда я показываю изображение с помощью функции show(), оно работает нормально и то же самое для сохранения изображения, но когда я пытаюсь встроить его в Qlabel (code -self.label_2.setPixmap(QtGui.QPixmap('outimg.png')))
показывает ошибку -
foo: Извините, не могу обрабатывать изображения с 32-битными образцами.
Я хочу знать, где ошибка и как это можно сделать?