From 11eb335a74706f69905748ed3e5139b77cf33220 Mon Sep 17 00:00:00 2001 From: Gasper Spagnolo Date: Thu, 20 Oct 2022 16:12:02 +0200 Subject: [PATCH] Implemented my hist with image type --- assignment1/solution.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/assignment1/solution.py b/assignment1/solution.py index 72c9fdf..286a117 100644 --- a/assignment1/solution.py +++ b/assignment1/solution.py @@ -9,12 +9,12 @@ from PIL import Image # EXCERCISE 1: Basic image processing # ####################################### -def excercise_one() -> None: - image = one_a() - #one_b(image) - #one_c(image) - #one_d(100, 200, 50, 200, image) - one_e() +#def excercise_one() -> None: +# image = one_a() +# one_b(image) +# one_c(image) +# one_d(100, 200, 50, 200, image) +# one_e() def one_a() -> npt.NDArray[np.float64]: """ @@ -134,7 +134,7 @@ def excercise_two() -> None: """ #two_a() two_b('./images/bird.jpg', 100, 20) - two_d() + #two_d() #two_e(uz.imread_gray("./images/bird.jpg", uz.ImageType.float64)) @@ -184,8 +184,12 @@ def my_hist_for_loop(image: npt.NDArray[np.float64], number_of_bins: int) -> npt return bins / np.sum(bins) # Much faster implementation than for loop -def my_hist(image: npt.NDArray[np.float64], number_of_bins: int) -> npt.NDArray[np.float64]: - bins = np.arange(0, 1, 1 / number_of_bins) +def my_hist(image: npt.NDArray[np.float64], number_of_bins: int, img_typ: uz.ImageType) -> npt.NDArray[np.float64]: + if img_typ == uz.ImageType.float64: + bins = np.arange(0, 1, 1 / number_of_bins) + elif img_typ == uz.ImageType.uint8: + bins = np.arange(0, 255, 255/number_of_bins) + # Put pixels into classes # ex. binsize = 10 then 0.4 would map into 4 binarray = np.digitize(image.reshape(-1), bins).astype(np.uint8) @@ -226,9 +230,8 @@ def two_b(image_path: str, number_of_bins_first: int, number_of_bins_second: int """ image = uz.imread_gray(image_path, uz.ImageType.uint8) - - H1 = my_hist(image, number_of_bins_first) - H2 = my_hist(image, number_of_bins_second) + H1 = my_hist(image, number_of_bins_first, uz.ImageType.uint8) + H2 = my_hist(image, number_of_bins_second, uz.ImageType.uint8) fig, (ax0, ax1, ax2) = plt.subplots(1, 3) fig.suptitle("Birdie and histgrams") @@ -337,8 +340,6 @@ def two_e(image: npt.NDArray[np.float64]) -> None: criterias.append( weight0 * var0 + weight1 * var1) best_threshold = treshold_range[np.argmin(criterias)] - print(best_threshold) - print("h") def main() -> None: #excercise_one()