Neste artigo, veremos como podemos definir um gradiente predefinido para o objeto de visualização da imagem em PyQTGaph. PyQtGraph é uma biblioteca gráfica e de interface do usuário para Python que fornece funcionalidades comumente necessárias para projetos e aplicações científicas. Seus objetivos principais são fornecer gráficos interativos rápidos para a exibição de dados (plotagens, vídeo, etc.). Widget usado para exibição e análise de dados de imagem. Implementa muitos recursos, como a exibição de dados de imagem 2D e 3D. Para dados 3D, um controle deslizante do eixo z é exibido, permitindo ao usuário selecionar qual quadro é exibido. Exibe o histograma dos dados da imagem com a região móvel definindo os níveis de escuro / claro, o gradiente editável fornece uma tabela de pesquisa de cores, o controle deslizante do quadro também pode ser movido usando as teclas de seta esquerda / direita, bem como pgup, pgdn, home e end. Na computação gráfica, um gradiente de cor especifica um intervalo de cores dependentes da posição, geralmente usado para preencher uma região. Por exemplo, muitos gerenciadores de janela permitem que o plano de fundo da tela seja especificado como um gradiente.

Abaixo está a lista de gradientes predefinidos disponíveis

'térmico', 'chama', 'amarelado', 'bipolar', 'espectro', 'cíclico', 'cinza', 'cinza', 'viridis', 'inferno', 'plasma', 'magma'

Podemos criar uma visualização de imagem com a ajuda do comando fornecido abaixo 

# criar um objeto de visualização de imagem pyqtgraph
imv = pg.ImageView()

Para fazer isso, usamos o método setPredefinedGradient com o objeto de visualização de imagem
Sintaxe: imv.setPredefinedGradient (name)
Argumento: Leva string como argumento
Retorno: Retorna Nenhum 



Abaixo está a implementação.

from PyQt5.QtWidgets import *
import sys 
import numpy as np 
import pyqtgraph as pg 
from PyQt5.QtGui import *
from PyQt5.QtCore import *
  
  
class ImageView(pg.ImageView): 
  
    
    
    def __init__(self, *args, **kwargs): 
        pg.ImageView.__init__(self, *args, **kwargs) 
  
  
class Window(QMainWindow): 
  
    def __init__(self): 
        super().__init__() 
        self.setWindowTitle("PyQtGraph") 
        self.setGeometry(100, 100, 600, 500) 
        icon = QIcon("skin.png") 
        self.setWindowIcon(icon) 
        self.UiComponents() 
        self.show() 
        self.setFixedSize(QSize(600, 500)) 
  
    
    def UiComponents(self): 
        widget = QWidget() 
        label = QLabel("Geeksforgeeks Image View") 
        label.setMinimumWidth(130) 
        label.setWordWrap(True) 
        pg.setConfigOptions(antialias=True) 
        imv = ImageView() 
        img = pg.gaussianFilter(np.random.normal( 
            size=(200, 200)), (5, 5)) * 20 + 100
        img = img[np.newaxis, :, :] 
        decay = np.exp(-np.linspace(0, 0.3, 100))[:, np.newaxis, np.newaxis] 
        data = np.random.normal(size=(100, 200, 200)) 
        data += img * decay 
        data += 2
        sig = np.zeros(data.shape[0]) 
        sig[30:] += np.exp(-np.linspace(1, 10, 70)) 
        sig[40:] += np.exp(-np.linspace(1, 10, 60)) 
        sig[70:] += np.exp(-np.linspace(1, 10, 30)) 
sig = sig[:, np.newaxis, np.newaxis] * 3
        data[:, 50:60, 30:40] += sig 
      
        imv.setImage(data, xvals=np.linspace(1., 3., data.shape[0])) 
        colors = [ 
            (0, 0, 0), 
            (4, 5, 61), 
            (84, 42, 55), 
            (15, 87, 60), 
            (208, 17, 141), 
            (255, 255, 255) 
        ] 
        cmap = pg.ColorMap(pos=np.linspace(0.0, 1.0, 6), color=colors) 
        imv.setColorMap(cmap) 
        layout = QGridLayout() 
        label.setFixedWidth(130) 
        widget.setLayout(layout) 
        layout.addWidget(label, 1, 0) 
        layout.addWidget(imv, 0, 1, 3, 1) 
        self.setCentralWidget(widget) 
        imv.setPredefinedGradient('plasma') 
  
  
App = QApplication(sys.argv) 
window = Window() 
sys.exit(App.exec()) 

Resultado: