From 5071218185c79d7a2b5e497b3374cdb26df4bf7b Mon Sep 17 00:00:00 2001 From: File Date: Sat, 29 Oct 2022 21:09:29 +0900 Subject: [PATCH] =?UTF-8?q?Image=20Merging=20Fix=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EB=B3=91=ED=95=A9=EC=8B=9C=20=EA=B0=80=EB=A1=9C?= =?UTF-8?q?=EA=B0=80=20=EB=8B=A4=EB=A5=B4=EB=A9=B4=20=EB=B3=91=ED=95=A9?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EA=B0=80=EC=9E=A5=20=ED=81=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=EA=B0=80=20=EA=B0=80=EC=9E=A5=20=EC=9E=91?= =?UTF-8?q?=EC=9D=80=20=EA=B0=80=EB=A1=9C=EC=97=90=20=EB=A7=9E=EC=B6=B0?= =?UTF-8?q?=EC=84=9C=20resize=20=EB=90=98=EC=96=B4=20=EB=B3=91=ED=95=A9?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/ImageMerger.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/module/ImageMerger.py b/module/ImageMerger.py index c2af612..2801928 100644 --- a/module/ImageMerger.py +++ b/module/ImageMerger.py @@ -54,8 +54,15 @@ def print_lists(self): for element in self.__file_lst: print(element) - # 코드 참고 : https://stackoverflow.com/questions/53876007/how-to-vertically-merge-two-images - + # 수직으로 합칠때, 큰 이미지가 있으면 작게 resize 후 붙이는 함수 + # https://note.nkmk.me/en/python-opencv-hconcat-vconcat-np-tile/ + def vconcat_resize_min(self, im_list, interpolation=cv2.INTER_CUBIC): + w_min = min(im.shape[1] for im in im_list) + im_list_resize = [cv2.resize(im, (w_min, int(im.shape[0] * w_min / im.shape[1])), interpolation=interpolation) + for im in im_list] + return cv2.vconcat(im_list_resize) + + # 코드 참고 : https://stackoverflow.com/questions/53876007/how-to-vertically-merge-two-images def __image_merge(self, file_lst: list): try: rel_base_path = os.path.dirname(file_lst[0]) # 웹툰이 저장되어 있는 폴더 경로 @@ -87,7 +94,10 @@ def __image_merge(self, file_lst: list): img_array = np.fromfile(image_full_path, np.uint8) img = cv2.imdecode(img_array, cv2.IMREAD_COLOR) img_lst.append(img) - result = cv2.vconcat(img_lst) + + # call vconcat_resize_min function + result = self.vconcat_resize_min(img_lst) + # result = cv2.vconcat(img_lst) output_path = os.path.join(base_path, 'output.png') print("출력 경로 : ", output_path)