소개
날카로운 모서리는 솔직히 말해서 매우 위험하므로 PNG를 입력으로 사용하면 아래 설명 된 방법을 사용하여 이미지를 흐리게 처리하고 손상된 날카로운 모서리를 둔화시킵니다.
방법
각 픽셀의 RGB 값을 얻으려면 다음 세 가지 방정식을 사용하십시오.
여기서 는 인접한 각 픽셀의 빨강 값의 합을 제곱 한 것입니다. 값 인접 화소 (예를 들면, 코너의 화소가있을 것이다의 개수 화상의 중심 주위의 화소가있을 것이다 반면, 3의 값을 (8)의 값).
인접한 픽셀은 모든 방향 (왼쪽, 오른쪽, 위, 아래 및 모든 대각선)에서 원본 픽셀에서 1 픽셀 떨어진 픽셀입니다.
예를 들어 다음 3 x 1 이미지에서
중간 픽셀의 흐릿한 RGB 값은 다음과 같습니다.
소수점 출력은 가장 가까운 단위로 반올림됩니다. 당신은 단순히 결과를 바닥해서는 안됩니다.
따라서 가운데 픽셀은 색상 (0, 221, 221)이거나 다음과 같습니다.
이미지 결과 :
이미지의 모든 픽셀에 대해이 과정을 반복해야합니다. (수정 된 픽셀이 아닌 원본 픽셀로이 작업을 수행합니다. 기본적으로 원본 이미지를 덮어 쓰지 않아야하며 흐리게 처리 된 새 이미지와 완전히 분리해야합니다 ).
255보다 큰 값을 계산하는 경우 해당 값이 255라고 가정하십시오 (즉, 374는 255로 설정 됨).
결과 출력은 별도의 PNG 이미지 여야합니다 (원하는 이름을 지정할 수 있음).
예
슈퍼 마리오
기발한:
흐리게 :
서양 장기판
기발한:
흐리게 :
칩
기발한
흐리게
더 이상 선명하지 않습니다
미국 고딕
기발한:
흐리게 :
큰 이미지에서 흐려짐을 보려면 흐릿한 이미지에서 프로그램을 다시 실행하는 것이 가장 좋습니다.
도전
주어진 PNG 이미지를 흐리게 처리하는 가장 짧은 코드가 승리합니다.
이미지 처리 라이브러리 (예 : PIL)를 사용할 수 있지만 내장 흐림 기능을 사용해서는 안됩니다 (Mathematica,보고 있습니다).
노트
@orlp는 다음과 같이 말합니다.
기록적으로 (내 지식으로는) 이것은 표준 흐림 방법이 아닙니다. 이 도전은 교육 자료가 아닙니다.
n
분모에 나타나야합니다.