2차 과제

과제 1. 앞서 사용한 보간법은 네 칸 중에서 대각선 상에 위치한 두 개의 픽셀에 대해서만 평균값을 구하여 사용한다. 대신에 네 칸 모두를 대상으로 픽셀 평균값을 계산하는 이미지 축소 함수 resize_half()를 정의하라.

사용되는 매개변수와 의미는 다음과 같다.

주의사항: 기본적으로 어레이 관련 연산, 메서드, 함수만 사용한다. for 반복문은 사용하지 않는다.

예를 들어, face에 사용된 dtype과 사용된 값들의 최대, 최소를 확인해보자.

어레이를 255로 나누면 float64 자료형이 된다.

평균 연산을 하면 소수점이 나올 수밖에 없기에 이미지 어레이가 인자로 들어오면 무조건 0과 1사이의 부동소수점으로 변환을 한 다음에 이미지 크기를 조정하도록 해야 한다.

구현된 함수가 제대로 작동하는제 테스트하라.

과제 2. 이미지의 픽셀 수를 임의의 지정된 비율로 줄이는 함수 resize_ratio()를 선언하라. 사용되는 매개변수와 의미는 다음과 같다.

주의사항:

  1. 크기를 n으로 나눈 나머지 행과 열은 삭제한다.
  2. n은 8 정도까지만 시험해 본다. 그보다 크면 원본 이미지에서 너무 많은 데이터를 잃어버릴 것이다.
  3. 기본적으로 어레이 연산만 사용한다. for 반복문을 어레이의 각 항목의 값을 지정하는 데에 사용하지는 말아야 한다.

힌트: np.hsplit() 함수와 sum() 메서드를 적절히 활용하면 for 반복문을 전혀 사용하지 않아도 된다. 다만, np.hsplit() 함수의 작동법이 그렇게 간단하지는 않다.

구현된 함수가 제대로 작동하는제 테스트하라.