-
CS50 Week4: Problem Set, FiltersProgramming/CS50 2023. 7. 14. 20:53
하버드 CS50 강의 4주차 Poblem Set 과제 Filters 의 풀이 과정을 다룹니다.
C언어로 이차원 배열으로 표현된 이미지를 다루는 문제입니다.Intro
문제 링크에서 자세한 내용을 확인할 수 있습니다.
다양한 이미지 필터를 만드는 문제
Code
다음 4가지 함수를 구현해야한다.
grayscale
: 이미지를 흑백으로 변환reflect
: 이미지를 좌우 반전blur
: 이미지를 흐리게 만듬edges
: 이미지의 가장자리를 강조
grayscale 함수
RGB 값의 평균을 구해서 때려박는다.
reflect 함수
절반을 기준으로 대응되는 값을 서로 바꾸어준다.
홀수여도 괜찮다. 중간은 무시하면 된다.blur 함수
각 픽셀을 기준으로
di
,dj
를 두어서 주변 픽셀을 순회하며 평균을 계산한다.
바깥으로 벗어나는 경우를 주의해한다.continue
를 사용해서 처리해주기로 한다.blur
함수는 주변 픽셀 값을 참조해서 평균을 계산한다.처리 해서 바꾼 픽셀을 input 이미지에 그대로 넣어버리면 다음 계산에 영향이 갈 수 있다.
따라서 같은 크기의 배열temp_image
를 만들어서 계산이 다 끝난 이후에야 원본 이미지를 바꿔준다.edges 함수
복잡해 보이지만 지금까지 한 내용을 토대로 명세에 맞추어 구현하기만 하면 된다.