[codeit-python] 패키지 사용해 보기

SUNGJIN KIM·2021년 12월 17일
0

codeit

목록 보기
16/18

과제

  1. cil/processing.py 파일의 merge(img1, img2) 함수를 구현해 주세요.

  2. main.py 파일이 잘 실행되도록 코드를 완성해 주세요.

문제 풀이

이전에 풀었던 과제에서 추가 구현을 하는 문제였다.
https://velog.io/@woonmong/codeit-python-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EB%8B%A4%EB%A3%A8%EB%8A%94-%EB%AA%A8%EB%93%88-%EB%A7%8C%EB%93%A4%EA%B8%B0

항상 문제를 보면 일단 막막함부터 오긴하는데, 멀리서 문제를 유심히 보다보면 문제에 힌트가 있다. 아마 코드잇에서 강의를 수강한다는 전제가 있기때문에 힌트를 이곳저곳에 넣어놓은 것이 아닐까 싶다.

일단 비트를 합성하는 함수는 구현이 되어있기 때문에, 이걸 잘 사용하면 된다.
이전에 작성한 코드에서 조금 응용했다.

일단 사이즈가 같은지 먼저 확인을 하고, 사이즈가 같을 경우에는 img1 이든 img2든 사이즈를 구하는데에는 아무거나 사용해도 문제는 없다.
이에 해당 사이즈를 비교후, 구해서 빈 이미지를 만들었다.

빈 이미지를 만든다음에는 해당 이미지에 합성된 데이터를 넣어주기만 하면 끝.

def merge(img1, img2):
    # img1과 img2의 크기가 같은지 확인
    if get_size(img1) == get_size(img2):
        height, width = len(img1), len(img1[0])
        new_img = empty_image(height,width)
        for i in range(height):
            for j in range(width):
                new_img[i][j] = or_bits(img1[i][j],img2[i][j])
        return new_img
    else:
        print('img1과 img2의 크기가 같아야 합니다!')

2번의 경우에는 패키지 사용을 위해 코드를 작성하는 것이였다.
사실 수업만 잘 따라왔으면 이 부분은 어렵지 않다.

(처음에 두개를 어떻게 사용하나 고민을 했는데 조금 찾아보니 답이 나왔다.)

from cil.utils import read_image,display
from cil.processing import invert as inv, merge as mrg

하나씩 풀어나갈 수 있다는게 가장 큰 재미요소이다.
까막눈이였고, 개발은 나와 맞지 않다고 생각했는데 하나씩 알아가고 풀어낸다는 게 새삼 뿌듯하다.

profile
#QA #woonmong

0개의 댓글