Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# package_name
#image-processing-package


Description.
The package package_name is used to:
Expand All @@ -21,7 +22,6 @@ file1_name.my_function()
```

## Author
My_name

heltonsilv
## License
[MIT](https://choosealicense.com/licenses/mit/)
[MIT](https://choosealicense.com/licenses/mit/)
18 changes: 16 additions & 2 deletions image_processing/processing/combination.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,29 @@
from skimage.exposure import match_histograms
from skimage.metrics import structural_similarity

# Função para encontrar a diferença entre duas imagens
def find_difference(image1, image2):
assert image1.shape == image2.shape, "Specify 2 images with de same shape."
# Verifica se as duas imagens têm a mesma forma
assert image1.shape == image2.shape, "Specify 2 images with the same shape."

# Converte as imagens para escala de cinza
gray_image1 = rgb2gray(image1)
gray_image2 = rgb2gray(image2)

# Calcula a similaridade estrutural entre as duas imagens
(score, difference_image) = structural_similarity(gray_image1, gray_image2, full=True)
print("Similarity of the images:", score)
normalized_difference_image = (difference_image-np.min(difference_image))/(np.max(difference_image)-np.min(difference_image))

# Normaliza a imagem de diferença para o intervalo [0, 1]
normalized_difference_image = (difference_image - np.min(difference_image)) / (np.max(difference_image) - np.min(difference_image))

# Retorna a imagem de diferença normalizada
return normalized_difference_image

# Função para transferir o histograma de uma imagem para outra
def transfer_histogram(image1, image2):
# Ajusta o histograma da primeira imagem para combinar com o da segunda
matched_image = match_histograms(image1, image2, multichannel=True)

# Retorna a imagem com o histograma ajustado
return matched_image
10 changes: 9 additions & 1 deletion image_processing/processing/transformation.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
from skimage.transform import resize

# Função para redimensionar uma imagem com base em uma proporção
def resize_image(image, proportion):
# Verifica se a proporção está entre 0 e 1
assert 0 <= proportion <= 1, "Specify a valid proportion between 0 and 1."

# Calcula a nova altura e largura da imagem com base na proporção fornecida
height = round(image.shape[0] * proportion)
width = round(image.shape[1] * proportion)

# Redimensiona a imagem usando a função resize do skimage, com anti-aliasing para melhorar a qualidade
image_resized = resize(image, (height, width), anti_aliasing=True)
return image_resized

# Retorna a imagem redimensionada
return image_resized
13 changes: 10 additions & 3 deletions image_processing/utils/io.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
from skimage.io import imread, imsave

def read_image(path, is_gray = False):
image = imread(path, as_gray = is_gray)
# Função para ler uma imagem a partir de um caminho especificado
def read_image(path, is_gray=False):
# Lê a imagem do caminho fornecido
# Se is_gray for True, a imagem será convertida para escala de cinza
image = imread(path, as_gray=is_gray)

# Retorna a imagem lida
return image

# Função para salvar uma imagem em um caminho especificado
def save_image(image, path):
imsave(path, image)
# Salva a imagem no caminho fornecido
imsave(path, image)
46 changes: 38 additions & 8 deletions image_processing/utils/plot.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,58 @@
import matplotlib.pyplot as plt

# Função para plotar uma imagem
def plot_image(image):
# Cria uma figura com tamanho especificado
plt.figure(figsize=(12, 4))

# Exibe a imagem em escala de cinza
plt.imshow(image, cmap='gray')

# Remove os eixos
plt.axis('off')

# Mostra a imagem plotada
plt.show()

# Função para plotar múltiplas imagens lado a lado
def plot_result(*args):
# Obtém o número de imagens a serem plotadas
number_images = len(args)
fig, axis = plt.subplots(nrows=1, ncols = number_images, figsize=(12, 4))

# Cria uma figura com subplots em uma única linha
fig, axis = plt.subplots(nrows=1, ncols=number_images, figsize=(12, 4))

# Cria uma lista de nomes para as imagens
names_lst = ['Image {}'.format(i) for i in range(1, number_images)]
names_lst.append('Result')

# Itera sobre os eixos, nomes e imagens para plotar cada uma
for ax, name, image in zip(axis, names_lst, args):
ax.set_title(name)
ax.imshow(image, cmap='gray')
ax.axis('off')
ax.set_title(name) # Define o título do subplot
ax.imshow(image, cmap='gray') # Exibe a imagem em escala de cinza
ax.axis('off') # Remove os eixos

# Ajusta o layout da figura para evitar sobreposição
fig.tight_layout()

# Mostra a figura plotada
plt.show()

# Função para plotar histogramas de uma imagem
def plot_histogram(image):
fig, axis = plt.subplots(nrows=1, ncols = 3, figsize=(12, 4), sharex=True, sharey=True)
# Cria uma figura com 3 subplots compartilhando eixos x e y
fig, axis = plt.subplots(nrows=1, ncols=3, figsize=(12, 4), sharex=True, sharey=True)

# Lista de cores para os canais de cor
color_lst = ['red', 'green', 'blue']

# Itera sobre os eixos, índices e cores para plotar cada histograma
for index, (ax, color) in enumerate(zip(axis, color_lst)):
ax.set_title('{} histogram'.format(color.title()))
ax.hist(image[:, :, index].ravel(), bins = 256, color = color, alpha = 0.8)
ax.set_title('{} histogram'.format(color.title())) # Define o título do subplot
ax.hist(image[:, :, index].ravel(), bins=256, color=color, alpha=0.8) # Plota o histograma do canal de cor

# Ajusta o layout da figura para evitar sobreposição
fig.tight_layout()
plt.show()

# Mostra a figura plotada
plt.show()