Как встроить гиперспектральное изображение в 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-битными образцами.

Я хочу знать, где ошибка и как это можно сделать?

0 ответов

Другие вопросы по тегам