From 489e50203cc99d930c9297516a7f734c67b079c5 Mon Sep 17 00:00:00 2001 From: Minh Pham Dinh Date: Mon, 27 Feb 2023 23:26:03 -0500 Subject: [PATCH 1/3] added rotation when generating lexicon --- .../letter_congruence_multiprocessing.py | 55 +- letter_lexicon_with_rotation.pickle | Bin 0 -> 52970 bytes lexicon_to_csv.py | 14 + lexicon_with_rotation.csv | 3783 +++++++++++++++++ namesake.py | 4 +- 5 files changed, 3830 insertions(+), 26 deletions(-) create mode 100644 letter_lexicon_with_rotation.pickle create mode 100644 lexicon_to_csv.py create mode 100644 lexicon_with_rotation.csv diff --git a/font_data/letter_congruence_multiprocessing.py b/font_data/letter_congruence_multiprocessing.py index c5970ad..22d309d 100644 --- a/font_data/letter_congruence_multiprocessing.py +++ b/font_data/letter_congruence_multiprocessing.py @@ -62,33 +62,38 @@ def get_congruence(letter1, letter2): start_time = time.time() + # processing image img1 = Image.open(letter1) img2 = Image.open(letter2) img1 = ImageOps.grayscale(img1) img2 = ImageOps.grayscale(img2) - width = img1.size[0] - height = img1.size[1] - - max_overlaps = 0 - # move one of the matrice up and left and vice versa. - # (equivalent to move the other matrix down and right) - for y_shift in range(-height, height): - for x_shift in range(-width, width): - # move the matrix A to the up-right and up-left directions - max_overlaps = max(max_overlaps, shift_and_count(x_shift, y_shift, img1, img2)) - # move the matrix B to the up-right and up-left directions - # which is equivalent to moving A to the down-right and down-left directions - #max_overlaps = max(max_overlaps, shift_and_count(x_shift, y_shift, img2, img1)) - - print("max_overlap: ",max_overlaps) - print("area of: " , letter1, " is: ", get_area(img1)) - print("area of: ", letter2, " is: ", get_area(img2)) - #print("congruence: ", max_overlaps / (get_area(img1) + get_area(img2) - 2 * max_overlaps)/2) - print("congruence: ", math.log10(10 * max_overlaps / (get_area(img1) + get_area(img2) - 2 * max_overlaps) / 2 )) + congruences = [] + + # implementing rotation + for a in range(0, 360, 90): + width = img1.size[0] + height = img1.size[1] + + max_overlaps = 0 + # move one of the matrice up and left and vice versa. + # (equivalent to move the other matrix down and right) + for y_shift in range(-height, height): + for x_shift in range(-width, width): + # move the matrix A to the up-right and up-left directions + max_overlaps = max(max_overlaps, shift_and_count(x_shift, y_shift, img1, img2)) + # move the matrix B to the up-right and up-left directions + # which is equivalent to moving A to the down-right and down-left directions + #max_overlaps = max(max_overlaps, shift_and_count(x_shift, y_shift, img2, img1)) + + curr_congruence = math.log10(10 * max_overlaps / (get_area(img1) + get_area(img2) - 2 * max_overlaps) / 2 ) + congruences.append(curr_congruence) + + # rotate img by 90 degrees + img1 = img1.rotate(90) - congruence = math.log10(10 * max_overlaps / (get_area(img1) + get_area(img2) - 2 * max_overlaps) / 2 ) + final_congruence = sum(congruences)/4 letter1_name = letter1.split("/")[-1].split(".")[0] letter2_name = letter2.split("/")[-1].split(".")[0] @@ -100,7 +105,9 @@ def get_congruence(letter1, letter2): letter2_name = letter2_name.replace("1", "") #lexicon[letter1_name+letter2_name] = congruence - return (letter1_name + letter2_name, congruence) + print(f"--> Finished procession congruence for {letter1_name} and {letter2_name} in {time.time() - start_time}") + print(f"--> AVARAGE CONGRUENCY BETWEEN 4 ANGLES: {final_congruence}\n") + return (letter1_name + letter2_name, final_congruence) end_time = time.time() print("time: ", end_time - start_time) @@ -112,7 +119,7 @@ def get_congruence(letter1, letter2): def main(): - path = "./Consolas_split/" + path = "./font_data/Consolas_split/" # get all images in path images = [] @@ -142,10 +149,10 @@ def main(): lexicon[second_letter + first_letter] = item lexicon[key] = item - with open('letter_lexicon.pickle', 'wb') as handle: + with open('letter_lexicon_with_rotation.pickle', 'wb') as handle: pickle.dump(lexicon, handle, protocol=pickle.HIGHEST_PROTOCOL) - with open('letter_lexicon.pickle', 'rb') as handle: + with open('letter_lexicon_with_rotation.pickle', 'rb') as handle: copy_lexicon = pickle.load(handle) print(copy_lexicon == lexicon) diff --git a/letter_lexicon_with_rotation.pickle b/letter_lexicon_with_rotation.pickle new file mode 100644 index 0000000000000000000000000000000000000000..a2319ba180f330250bd4ffa741a740c2b4e752b7 GIT binary patch literal 52970 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 Date: Wed, 15 Mar 2023 10:47:53 -0400 Subject: [PATCH 2/3] changed from average to max --- .DS_Store | Bin 0 -> 6148 bytes .../letter_congruence_multiprocessing.py | 2 +- letter_lexicon_with_rotation.pickle | Bin 52970 -> 52970 bytes lexicon_to_csv.py | 2 +- lexicon_with_rotation.csv | 7564 ++++++++--------- namesake.py | 2 +- 6 files changed, 3785 insertions(+), 3785 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e14ee27633487cfdafb878674256e4defcbf9d5d GIT binary patch literal 6148 zcmeHK%TB{E5FA4#S{|Ytkl=t6iF+mfAV7OS0uJy2rH}9|1Za5Oa_1lT1-_3H%&rYe z+|naL;FaugoSn5Z8^@y{0%pas4)Mjv;%mb_Qv$J4n0ql+VN_OXFRQEntD`Jw*?9T>A;G zkfFnJHir4?F>5#$FM78bLs*^iSZ2**EOVX-{W8|KWXaVd$LeXE2ClVzA^l#YH!srq z#7J#CFj9t7j&aM_g=fN~QJ%d~mb@9Z87XDV9+kb%>ema`jA@PEG%kz7));twiH5@ShCYsnIHpuUn$1$Q* zkx{4432yinooVayT^f>|F~^z5mwXoaReB{ zMN5ZqhY#aMHtvLCbacj#)Ey?a80w%vP@t^9w7sm${@?ok{9h)8tDrzo;7=)FD$T>@ z79Yv&ts@U7du_yW#3CksxkaV0a@(;sWGh}_QRBTx8pPOPZjn8-@FSoygeoZTqY8Wg Dmxa*F literal 0 HcmV?d00001 diff --git a/font_data/letter_congruence_multiprocessing.py b/font_data/letter_congruence_multiprocessing.py index 22d309d..e72fa4b 100644 --- a/font_data/letter_congruence_multiprocessing.py +++ b/font_data/letter_congruence_multiprocessing.py @@ -93,7 +93,7 @@ def get_congruence(letter1, letter2): # rotate img by 90 degrees img1 = img1.rotate(90) - final_congruence = sum(congruences)/4 + final_congruence = max(congruences) letter1_name = letter1.split("/")[-1].split(".")[0] letter2_name = letter2.split("/")[-1].split(".")[0] diff --git a/letter_lexicon_with_rotation.pickle b/letter_lexicon_with_rotation.pickle index a2319ba180f330250bd4ffa741a740c2b4e752b7..1bd30be9b4fa6d8220874449c86f178361afbfaf 100644 GIT binary patch literal 52970 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 ZWXJ!~`|$mMr%|Oeg+a{A|DzdQ{trE5+yejr literal 52970 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 Date: Tue, 22 Aug 2023 15:07:38 +0700 Subject: [PATCH 3/3] fix printout --- font_data/letter_congruence_multiprocessing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/font_data/letter_congruence_multiprocessing.py b/font_data/letter_congruence_multiprocessing.py index e72fa4b..d178f5b 100644 --- a/font_data/letter_congruence_multiprocessing.py +++ b/font_data/letter_congruence_multiprocessing.py @@ -106,7 +106,7 @@ def get_congruence(letter1, letter2): #lexicon[letter1_name+letter2_name] = congruence print(f"--> Finished procession congruence for {letter1_name} and {letter2_name} in {time.time() - start_time}") - print(f"--> AVARAGE CONGRUENCY BETWEEN 4 ANGLES: {final_congruence}\n") + print(f"--> MAX CONGRUENCY VALUE ACROSS ALL 4 ORIENTATIONS: {final_congruence}\n") return (letter1_name + letter2_name, final_congruence) end_time = time.time()