Как правильно отобразить массив numpy в объекте QPixmap QLabel с использованием PySide6?

Как решить проблему с отображением «белого шума» в QLabel при попытке установки изображения pixmap?
  • 5 июля 2024 г. 17:32
Ответы на вопрос 2
Для отображения массива numpy в объекте QPixmap QLabel с использованием PySide6 необходимо сначала преобразовать массив numpy в объект QImage, а затем создать объект QPixmap на основе этого изображения. Далее необходимо установить этот QPixmap в QLabel с помощью метода setPixmap.

Пример кода:

```python
import numpy as np
from PySide6.QtGui import QImage, QPixmap
from PySide6.QtWidgets import QLabel

# Создаем массив numpy
array = np.random.rand(100, 100) * 255
image = QImage(array, array.shape[1], array.shape[0], QImage.Format_Grayscale8)

# Создаем объект QPixmap на основе изображения
pixmap = QPixmap.fromImage(image)

# Устанавливаем QPixmap в QLabel
label = QLabel()
label.setPixmap(pixmap)
label.show()
```

Чтобы решить проблему с отображением «белого шума» в QLabel при попытке установки изображения pixmap, можно попробовать использовать другой формат изображения при создании объекта QImage. Например, можно попробовать использовать формат RGB32:

```python
image = QImage(array, array.shape[1], array.shape[0], QImage.Format_RGB32)
```

Также можно попробовать нормализовать массив numpy перед созданием изображения:

```python
normalized_array = (array - array.min()) / (array.max() - array.min()) * 255
image = QImage(normalized_array, normalized_array.shape[1], normalized_array.shape[0], QImage.Format_Grayscale8)
```

Эти методы помогут избежать проблемы с отображением «белого шума» и корректно отобразить изображение в QLabel.
Если кто будет искать ответ, то он таков: 
1) Нужно использовать Grayscale_16
2) В Dicom количество строк - это ширина, а колонок - высота
Похожие вопросы