eddygiusepe commited on
Commit
138a175
·
1 Parent(s): ad5dfc9

OpenCV mudando cores. Imagem cinza e RGB

Browse files
4_OpenCV_with_MachineLearningMastery.py ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro
3
+
4
+ Links de estudo:
5
+ ================
6
+
7
+ * https://machinelearningmastery.com/how-to-read-write-display-images-in-opencv-and-converting-color-spaces/?utm_source=drip&utm_medium=email&utm_campaign=A+gentle+introduction+to+OpenCV&utm_content=A+gentle+introduction+to+OpenCV
8
+
9
+ * https://machinelearningmastery.com/how-to-read-and-display-videos-using-opencv/?utm_source=drip&utm_medium=email&utm_campaign=A+gentle+introduction+to+OpenCV&utm_content=A+gentle+introduction+to+OpenCV
10
+
11
+ """
12
+
13
+ """
14
+ Como ler, escrever, exibir imagens em OpenCV e converter espaços de cores
15
+ =========================================================================
16
+
17
+ Ao trabalhar com imagens, algumas das operações mais básicas que são essenciais para dominar
18
+ incluem ler as imagens do disco, exibi-las, acessar seus valores de pixel e convertê-las de
19
+ um espaço de cores para outro.
20
+
21
+ Este tutorial explica essas operações básicas, começando primeiro com uma descrição de como
22
+ uma imagem digital é formulada em termos de suas coordenadas espaciais e valores de intensidade.
23
+
24
+ Neste tutorial, você se familiarizará com as operações mais básicas do 🤗 OpenCV 🤗, essenciais ao trabalhar com imagens.
25
+
26
+ Depois de concluir este tutorial, você saberá:
27
+
28
+ * Como uma imagem digital é formulada em termos de suas coordenadas espaciais e valores de intensidade.
29
+ * Como uma imagem é lida e exibida no OpenCV.
30
+ * Como os valores de pixel de uma imagem podem ser acessados.
31
+ * Como uma imagem pode ser convertida de um espaço de cores para outro
32
+
33
+ NOTA:
34
+ =====
35
+
36
+ * As intensidades de pixel são comumente representadas por valores inteiros no intervalo [0, 255],
37
+ o que significa que cada pixel pode assumir qualquer um dos 256 valores discretos.
38
+
39
+ * Uma imagem RGB, por outro lado, é composta por três canais, nomeadamente o Vermelho , o Verde e o Azul .
40
+
41
+ * O modelo de cores RGB não é o único que existe, mas é possivelmente o mais comumente usado em muitas
42
+ aplicações de visão computacional. É um modelo de cor aditivo, que se refere ao processo de criação
43
+ de cor misturando (ou adicionando) espectros de luz de fontes de cores diferentes.
44
+ """
45
+
46
+ from cv2 import imread
47
+ # Aqui o link para baixar IMAGENS de graça --> https://unsplash.com/pt-br
48
+ img = imread('Images/Dog.jpg') # Método 'imread()' retorna uma matriz NumPy. img --> contém os valores de pixel da Imagem
49
+
50
+ print('Tipo de Dados:', img.dtype, '\nDimensões:', img.shape)
51
+ """
52
+ Isso significa que os pixels em cada canal da imagem podem assumir qualquer um dos 2^8 = 256 valores,
53
+ dentro de um intervalo de 0 a 255. Aprendemos também que as dimensões do array são 4000 × 6000 × 3,
54
+ que correspondem ao número de linhas, colunas e canais da imagem, respectivamente.
55
+ """
56
+
57
+ print("Primeiro pixel situado no canto superior esquerdo da imagem BGR: ", img[0, 0])
58
+
59
+
60
+ # Usando Matplotlib:
61
+ import matplotlib.pyplot as plt
62
+ plt.imshow(img)
63
+ plt.title('Exibindo imagem do Dog, usando Matplotlib')
64
+ plt.show()
65
+
66
+
67
+ # Usando OpenCV: (A imagem fica muito Grane !!!)
68
+ from cv2 import imshow, waitKey
69
+ imshow('Exibindo imagem do Dog, usando OpenCV', img)
70
+ waitKey(0) # Pressione 'esc' para sair
71
+
72
+ # Com OpenCV, você também pode escrever um array NumPy como uma imagem em um arquivo, como segue:
73
+ from cv2 import imwrite
74
+ imwrite("output.jpg", img)
75
+
76
+
77
+ """
78
+ Convertendo entre espaços de cores
79
+ ==================================
80
+ """
81
+ # Para converter entre os espaços de cores BGR e RGB, podemos usar o seguinte código:
82
+ from cv2 import cvtColor, COLOR_BGR2RGB
83
+ img_rgb = cvtColor(img, COLOR_BGR2RGB)
84
+ # Exibir, novamente, usando Matplotlib, agora podemos ver que ela é exibida corretamente:
85
+ plt.imshow(img_rgb)
86
+ plt.title('Exibindo imagem do Dog, usando Matplotlib e com cor RGB')
87
+ plt.grid(True)
88
+ plt.show()
89
+
90
+ print("Primeiro pixel situado no canto superior esquerdo da imagem RGB recém-convertida: ", img_rgb[0, 0])
91
+
92
+
93
+ """
94
+ BGR para RGB não é a única conversão de cores que pode ser obtida por este método. Na verdade,
95
+ existem muitos códigos de conversão de espaço de cores para escolher, como COLOR_RGB2HSV que converte
96
+ entre os espaços de cores RGB e HSV (Hue, Saturation, Value)=(matiz, saturação, valor).
97
+
98
+
99
+ Outra conversão popular é de RGB para escala de cinza onde, como mencionamos anteriormente,
100
+ espera-se que a saída resultante seja uma imagem de canal único. Vamos experimentar:
101
+ """
102
+
103
+ from cv2 import COLOR_RGB2GRAY
104
+
105
+ img_gray = cvtColor(img_rgb, COLOR_RGB2GRAY)
106
+
107
+ imshow('Grayscale Image', img_gray)
108
+ waitKey(0)
109
+
110
+ # Como esperado, é impresso apenas um único número que corresponde ao valor de intensidade do pixel:
111
+ print("Primeiro pixel nas coordenadas (0, 0) da Imagem Cinza: ", img_gray[0, 0])
112
+
113
+
114
+ """
115
+ 🤗🤗 Podemos trabalhar com a Imagem em escala de cinza imediatamente 🤗🤗:
116
+ """
117
+
118
+ from cv2 import IMREAD_GRAYSCALE
119
+
120
+ img_gray = imread('Images/Dog.jpg', IMREAD_GRAYSCALE)
121
+
122
+ imshow('Grayscale Image', img_gray)
123
+ waitKey(0)