diff --git a/README.md b/README.md index 0912af1..4e026cd 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,15 @@ Description. The package package_name is used to: - - - - + - Processing + - Histogram matching + - Structural similaryty + - Utils: + - Read image + - Save image + - Plot image + - Plot result + - Plot histogram ## Installation @@ -21,7 +28,7 @@ file1_name.my_function() ``` ## Author -My_name +Vinicius ## License [MIT](https://choosealicense.com/licenses/mit/) \ No newline at end of file diff --git a/package_name/file2_name.py b/package_name/file2_name.py deleted file mode 100644 index e69de29..0000000 diff --git a/package_name/__init__.py b/processing/__init__.py similarity index 100% rename from package_name/__init__.py rename to processing/__init__.py diff --git a/processing/combination.py b/processing/combination.py new file mode 100644 index 0000000..170c3cf --- /dev/null +++ b/processing/combination.py @@ -0,0 +1,17 @@ +import numpy as np +from skimage.color import rgb2gray +from skimage.exposure import match_histograms +from skimage.metrics import structural_similarity + +def find_difference(image1, image2): + assert image1.shape == image2.shape, "Specify 2 images with the same shape" + gray_image1 = rgb2gray(image1) + gray_image2 = rgb2gray(image2) + (score, difference_image) = structural_similarity(gray_image1, gray_image2, full=True) + print(f"Similarity of the images:", score) + normalized_difference_image =(difference_image-np.min(difference_image))/(np.max(difference_image)-np.min(difference_image)) + return normalized_difference_image + +def transfer_histogram(image1, image2): + matched_image = match_histograms(image1, image2, multichannel=True) + return matched_image \ No newline at end of file diff --git a/processing/transformation.py b/processing/transformation.py new file mode 100644 index 0000000..28bec14 --- /dev/null +++ b/processing/transformation.py @@ -0,0 +1,8 @@ +from skimage.transform import resize + +def resize_image(image, proportion): + assert 0 <= proportion <= 1, "Specify a valid proportion between 0 and 1." + height = round(image.shape[0]*proportion) + width = round(image.shape[1]*proportion) + image_resized = resize(image, (height, width), anti_aliasing=True) + return image_resized \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index e69de29..8f4c470 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +numpy +scikit-image >= 0.16.1 \ No newline at end of file diff --git a/setup.py b/setup.py index 4b4dc95..09c86cf 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ description="My short description", long_description=page_description, long_description_content_type="text/markdown", - url="my_github_repository_project_link" + url="my_github_repository_project_link", #eu adicionei essa virgula, se der pau, remover packages=find_packages(), install_requires=requirements, python_requires='>=3.8', diff --git a/package_name/file1_name.py b/utils/__init__.py similarity index 100% rename from package_name/file1_name.py rename to utils/__init__.py diff --git a/utils/io.py b/utils/io.py new file mode 100644 index 0000000..abfb0a4 --- /dev/null +++ b/utils/io.py @@ -0,0 +1,7 @@ +from skimage.io import imread, imsave +def read_image(path, is_gray = False): + image = imread(path, as_gray = is_gray) + return image + +def save_image(image, path): + imsave(path, image) \ No newline at end of file diff --git a/utils/plot.py b/utils/plot.py new file mode 100644 index 0000000..92be4e8 --- /dev/null +++ b/utils/plot.py @@ -0,0 +1,28 @@ +import matplotlib.pyplot as plt + +def plot_image(image): + plt.figure(figsize=(12, 4)) + plt.imshow(image, cmap='gray') + plt.axis('off') + plt.show() + +def plot_result(*args): + number_images = len(args) + fig, axis = plt.subplots(nrows=1, ncols = number_images, figsize=(12, 4)) + names_lst = ['Image()'.format(i) for i in range(1, number_images)] + names_lst.append('Result') + for ax, name, image in zip(axis, names_lst, args): + ax.set_title(name) + ax.imshow(image, cmap = 'gray') + ax.axis('off') + fig.light_layout() + plt.show() + +def plot_histogram(image): + fig, axis = plt.subplots(nrows = 1, ncols = 3, figsize = (12, 4), sharex = True, sharey = True) + color_lst = ['red', 'green', 'blue'] + 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) + fig.tight_layout + plt.show() \ No newline at end of file