흐릿한 이미지 복원하기

시간 제한1초메모리 제한128 MB

요약
맨해튼 거리 평균으로 흐려진 회색조 이미지가 주어질 때, 연립일차방정식을 풀어 원본 픽셀 값을 복원한다.
난이도

보통10점 중 7점

유형
수학, 행렬, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

이미지 흐림(blur)은 촬영 대상이 카메라 초점에서 벗어났을 때 발생합니다. 흐려진 이미지만 주어졌을 때 원본 이미지를 복원하는 것은 영상 처리에서 매우 흥미로운 주제이며, 이 과정을 디블러링(deblurring)이라고 합니다. 이 문제에서 여러분이 해결할 작업이 바로 이것입니다.

이 문제에서 모든 이미지는 색이 없는 회색조(grey-scale)입니다. 이미지는 실수로 이루어진 2차원 행렬로 표현되며, 각 칸은 해당 픽셀의 밝기를 나타냅니다. 수학적으로 엄밀하지는 않지만, 흐려진 이미지는 각 픽셀을 그 픽셀로부터의 맨해튼 거리(Manhattan distance)†가 고정값 DD 이하인 모든 픽셀(자기 자신 포함)의 평균으로 바꾼 것으로 설명할 수 있습니다. 다음은 흐림 거리 D=1D = 1일 때 3×33 \times 3 이미지의 흐림을 계산하는 예입니다.

blur([230172571314035])=[2+30+2532+30+17+7430+17+1332+25+7+14430+25+7+13+0517+7+13+35425+14+037+14+0+35413+0+353]=[191420121518131416]\text{blur}\begin{pmatrix}\begin{bmatrix} 2 & 30 & 17 \\ 25 & 7 & 13 \\ 14 & 0 & 35 \end{bmatrix}\end{pmatrix} = \begin{bmatrix} \frac{2+30+25}{3} & \frac{2+30+17+7}{4} & \frac{30+17+13}{3} \\ \frac{2+25+7+14}{4} & \frac{30+25+7+13+0}{5} & \frac{17+7+13+35}{4} \\ \frac{25+14+0}{3} & \frac{7+14+0+35}{4} & \frac{13+0+35}{3} \end{bmatrix} = \begin{bmatrix} 19 & 14 & 20 \\ 12 & 15 & 18 \\ 13 & 14 & 16 \end{bmatrix}

흐려진 이미지가 주어졌을 때, 위 방식 그대로 흐려졌다고 가정하고 원본 이미지를 복원하세요.

† 두 점 사이의 맨해튼 거리(택시 거리라고도 함)는 각 좌표 차이의 절댓값을 모두 더한 값입니다. 즉, 두 픽셀 (r1,c1)(r_1, c_1)과 (r2,c2)(r_2, c_2) 사이의 맨해튼 거리는 ∣r1−r2∣+∣c1−c2∣|r_1 - r_2| + |c_1 - c_2| 입니다.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다. 각 케이스는 H+1H + 1개의 줄로 주어집니다. 첫 줄에는 세 개의 음이 아닌 정수 WW, HH, DD가 주어지며, 각각 흐려진 이미지의 너비, 높이, 흐림 거리를 의미합니다. 여기서 1≤W,H≤101 \le W, H \le 10 이고 D≤min⁡(W/2,H/2)D \le \min(W/2, H/2) 입니다. 이어지는 HH개의 줄에는 흐려진 이미지의 각 픽셀 밝기가 주어집니다. 각 줄에는 WW개의 음이 아닌 실수가 소수점 둘째 자리까지 주어지며, 모든 값은 100100 미만입니다.

케이스와 케이스 사이에는 공백만으로 이루어진 줄이 0개 이상 나타날 수 있습니다. 입력의 마지막 줄은 세 개의 00입니다.

출력

각 테스트 케이스에 대해, 흐림을 제거한 이미지를 원본과 같은 크기의 실수 행렬로 출력하세요(HH개의 줄, 각 줄에 WW개의 값). 각 원소는 소수점 둘째 자리까지 반올림하고, 너비 88의 칸에 오른쪽 정렬하여 출력합니다. 연속한 두 테스트 케이스의 출력 사이에는 빈 줄을 하나 넣고, 마지막 테스트 케이스 뒤에는 빈 줄을 출력하지 않습니다. 모든 테스트 케이스에는 유일한 해가 존재함이 보장됩니다.

예제1

  1. 예제 1

    입력
    2 2 1
    1 1
    1 1
    
    3 3 1
    19 14 20
    12 15 18
    13 14 16
    
    4 4 2
    14 15 14 15
    14 15 14 15
    14 15 14 15
    14 15 14 15
    
    0 0 0
    
    예상 출력
        1.00    1.00
        1.00    1.00
    
        2.00   30.00   17.00
       25.00    7.00   13.00
       14.00    0.00   35.00
    
        1.00   27.00    2.00   28.00
       21.00   12.00   17.00    8.00
       21.00   12.00   17.00    8.00
        1.00   27.00    2.00   28.00