Introdução
Matplotlib é uma popular biblioteca de visualização de dados em Python. Ela oferece diversas ferramentas de plotagem, incluindo capacidades de plotagem 2D e 3D. Neste tutorial, usaremos o módulo RGBAxes do toolkit AxesGrid em Matplotlib para exibir os canais RGB.
Dicas para a VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido às limitações do Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Importar as bibliotecas necessárias
Nesta etapa, importaremos as bibliotecas necessárias: numpy, matplotlib.pyplot e mpl_toolkits.axes_grid1.axes_rgb.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_rgb import RGBAxes, make_rgb_axes
Definir uma função para obter os canais RGB
Nesta etapa, definiremos uma função get_rgb() para obter os canais R, G e B de uma imagem. Neste exemplo, usaremos a função get_sample_data() do módulo cbook para obter uma imagem de amostra.
import matplotlib.cbook as cbook
def get_rgb():
## Get a sample image
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")
Z[Z < 0] = 0.
Z = Z / Z.max()
## Get R, G, and B channels
R = Z[:13, :13]
G = Z[2:, 2:]
B = Z[:13, 2:]
return R, G, B
Definir uma função para criar um cubo RGB
Nesta etapa, definiremos uma função make_cube() para criar um cubo RGB a partir dos canais R, G e B obtidos na etapa anterior. A função retornará os cubos R, G e B, bem como a imagem RGB.
def make_cube(r, g, b):
## Get the shape of R
ny, nx = r.shape
## Create the R, G, and B cubes
R = np.zeros((ny, nx, 3))
R[:, :, 0] = r
G = np.zeros_like(R)
G[:, :, 1] = g
B = np.zeros_like(R)
B[:, :, 2] = b
## Combine the R, G, and B cubes to create the RGB image
RGB = R + G + B
return R, G, B, RGB
Criar um gráfico RGBAxes
Nesta etapa, criaremos um gráfico RGBAxes usando a classe RGBAxes. Usaremos o método imshow_rgb() do objeto RGBAxes para exibir a imagem RGB.
def demo_rgb1():
## Create a figure and a RGBAxes object
fig = plt.figure()
ax = RGBAxes(fig, [0.1, 0.1, 0.8, 0.8], pad=0.0)
## Get the R, G, and B channels
r, g, b = get_rgb()
## Display the RGB image using the imshow_rgb() method
ax.imshow_rgb(r, g, b)
Criar um gráfico RGBAxes com canais separados
Nesta etapa, criaremos um gráfico RGBAxes com canais separados usando a função make_rgb_axes(). Usaremos o método imshow() dos objetos Axes para exibir os canais R, G e B.
def demo_rgb2():
## Create a figure and an Axes object
fig, ax = plt.subplots()
## Create the R, G, and B Axes objects using the make_rgb_axes() function
ax_r, ax_g, ax_b = make_rgb_axes(ax, pad=0.02)
## Get the R, G, and B channels and create the RGB cube
r, g, b = get_rgb()
im_r, im_g, im_b, im_rgb = make_cube(r, g, b)
## Display the RGB image and the R, G, and B channels
ax.imshow(im_rgb)
ax_r.imshow(im_r)
ax_g.imshow(im_g)
ax_b.imshow(im_b)
## Set the tick parameters and spine colors for all Axes objects
for ax in fig.axes:
ax.tick_params(direction='in', color='w')
ax.spines[:].set_color("w")
Exibir os gráficos
Nesta etapa, chamaremos as funções demo_rgb1() e demo_rgb2() para criar os gráficos e exibi-los usando a função plt.show().
demo_rgb1()
demo_rgb2()
plt.show()
Resumo
Neste tutorial, aprendemos como usar o módulo RGBAxes do toolkit AxesGrid em Matplotlib para exibir canais RGB. Cobrimos as seguintes etapas:
- Importar as bibliotecas necessárias
- Definir uma função para obter os canais RGB
- Definir uma função para criar um cubo RGB
- Criar um gráfico RGBAxes
- Criar um gráfico RGBAxes com canais separados
- Exibir os gráficos.