Gre na git

main
Gasper Spagnolo 2022-10-15 18:20:50 +02:00
parent fc81d20df5
commit 3877090cbf
2 changed files with 20 additions and 13 deletions

View File

@ -11,9 +11,10 @@ import cv2 as cv2
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
from PIL import Image from PIL import Image
from typing import Union from typing import Union
import numpy.typing as npt
def imread(path: str) -> np.float64: def imread(path: str) -> npt.NDArray[np.float64]:
""" """
Reads an image in RGB order. Image type is transformed from uint8 to float, and Reads an image in RGB order. Image type is transformed from uint8 to float, and
range of values is reduced from [0, 255] to [0, 1]. range of values is reduced from [0, 255] to [0, 1].
@ -21,10 +22,10 @@ def imread(path: str) -> np.float64:
I = Image.open(path).convert('RGB') # PIL image. I = Image.open(path).convert('RGB') # PIL image.
I = np.asarray(I) # Converting to Numpy array. I = np.asarray(I) # Converting to Numpy array.
I = I.astype(np.float64) / 255 I = I.astype(np.float64) / 255
return np.float64(I) return I
def imread_gray(path: str) -> np.float64: def imread_gray(path: str) -> npt.NDArray[np.float64]:
""" """
Reads an image in gray. Image type is transformed from uint8 to float, and Reads an image in gray. Image type is transformed from uint8 to float, and
range of values is reduced from [0, 255] to [0, 1]. range of values is reduced from [0, 255] to [0, 1].
@ -32,10 +33,10 @@ def imread_gray(path: str) -> np.float64:
I = Image.open(path).convert('L') # PIL image opening and converting to gray. I = Image.open(path).convert('L') # PIL image opening and converting to gray.
I = np.asarray(I) # Converting to Numpy array. I = np.asarray(I) # Converting to Numpy array.
I = I.astype(np.float64) / 255 I = I.astype(np.float64) / 255
return np.float64(I) return I
def imshow(img: Union[np.float64, np.uint8], title=None) -> None: def imshow(img: Union[npt.NDArray[np.float64], np.uint8], title=None) -> None:
""" """
Shows an image. Image can be of types: Shows an image. Image can be of types:
- type uint8, in range [0, 255] - type uint8, in range [0, 255]

View File

@ -1,5 +1,6 @@
import UZ_utils as uz import UZ_utils as uz
import numpy as np import numpy as np
import numpy.typing as npt
####################################### #######################################
# EXCERCISE 1: Basic image processing # # EXCERCISE 1: Basic image processing #
@ -9,23 +10,28 @@ def excercise_one() -> None:
image = one_a() image = one_a()
one_b(image) one_b(image)
# Display image # Display image
def one_a() -> np.float64: def one_a() -> npt.NDArray[np.float64]:
image = uz.imread('./images/bird.jpg') image = uz.imread('./images/bird.jpg')
print(image.shape)
print(image.dtype)
uz.imshow(image, 'Birdie') uz.imshow(image, 'Birdie')
return np.float64(image) return image
# Convert loaded image into grayscale # Convert loaded image into grayscale
def one_b(image: np.float64) -> None: def one_b(image: npt.NDArray[np.float64]) -> None:
print(image) grayscale_image = np.zeros(image.shape[:2])
for i in range(image.shape[0]):
for j in range(image.shape[1]):
grayscale_image[i, j] = (image[i, j, 0] + image[i,j, 1] + image[i, j, 2]) / 3
uz.imshow(grayscale_image, 'Birdie grayscale')
def one_c():
#todo
assert(1 == 1)
def main() -> None: def main() -> None:
excercise_one() excercise_one()
if __name__ == "__main__": if __name__ == "__main__":
main() main()