이미지 및 이미지 처리
이미지 처리 및 기타 컴퓨터 비전 기능을 살펴보기 전에 컴퓨터 프로그램의 데이터 컨텍스트에서 이미지가 실제로 것을 고려하는 것이 유용합니다.
이미지의 픽셀 배열
컴퓨터에서 이미지는 숫자 픽셀 값의 배열입니다. 예를 들어 다음 배열을 고려합니다.
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
배열은 7개의 행과 7개의 열로 구성되며, 7x7 픽셀 이미지의 픽셀 값(이미지의 해상도이라고 함)을 나타냅니다. 각 픽셀의 값은 0(검정)에서 255(흰색) 사이의 값을 가질 수 있으며, 이 값들은 회색의 여러 음영을 나타냅니다. 이 배열로 표시되는 이미지는 다음(확대) 이미지와 유사합니다.
회색조 이미지의
이 이미지의 픽셀 값 배열은 2차원(행과 열을 나타내거나 x 및 y 좌표를)이며 픽셀 값의 단일 사각형을 정의합니다. 이와 같은 픽셀 값의 단일 레이어는 회색조 이미지를 나타냅니다. 실제로 대부분의 디지털 이미지는 다차원이며 빨강, 녹색 및 파랑(RGB) 색상 색조를 나타내는 세 개의 레이어(채널라고 함)로 구성됩니다. 예를 들어 이전 회색조 예제와 동일한 사각형 도형을 만드는 픽셀 값의 세 채널을 정의하여 색 이미지를 나타낼 수 있습니다.
Red:
150 150 150 150 150 150 150
150 150 150 150 150 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 150 150 150 150 150
150 150 150 150 150 150 150
Green:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Blue:
255 255 255 255 255 255 255
255 255 255 255 255 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 255 255 255 255 255
255 255 255 255 255 255 255
결과 이미지는 다음과 같습니다.
보라색 사각형은 조합으로 표시됩니다.
Red: 150
Green: 0
Blue: 255
가운데의 노란색 사각형은 조합으로 표시됩니다.
Red: 255
Green: 255
Blue: 0
필터를 사용하여 이미지 처리
이미지 처리 작업을 수행하는 일반적인 방법은 시각적 효과를 만들기 위해 이미지의 픽셀 값을 수정하는 필터를 적용하는 것입니다. 필터는 필터 커널하나 이상의 픽셀 값 배열로 정의됩니다. 예를 들어 다음 예제와 같이 3x3 커널을 사용하여 필터를 정의할 수 있습니다.
-1 -1 -1
-1 8 -1
-1 -1 -1
그런 다음 커널은 이미지 전체에 걸쳐 적용되어 각 3x3 픽셀 패치에 대한 가중합을 계산하고 그 결과를 새 이미지에 할당합니다. 단계별 예제를 탐색하여 필터링의 작동 방식을 더 쉽게 이해할 수 있습니다.
앞에서 탐색한 회색조 이미지부터 시작해 보겠습니다.
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
먼저 이미지의 왼쪽 위 패치에 필터 커널을 적용하여 각 픽셀 값에 커널의 해당 가중치 값을 곱하고 결과를 추가합니다.
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (0 x -1) + (255 x -1) = -255
결과(-255)는 새 배열의 첫 번째 값이 됩니다. 그런 다음 한 픽셀을 따라 필터 커널을 오른쪽으로 이동하고 작업을 반복합니다.
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (255 x -1) + (255 x -1) = -510
다시 말하지만 결과는 새 배열에 추가되며, 이제 두 개의 값이 포함됩니다.
-255 -510
이 애니메이션에 표시된 것처럼 필터가 전체 이미지에 연결될 때까지 프로세스가 반복됩니다.
필터의
필터가 이미지 전체에 연결되어 새 값 배열을 계산합니다. 일부 값은 0~255픽셀 값 범위를 벗어나므로 해당 범위에 맞게 값이 조정됩니다. 필터의 모양 때문에 픽셀의 바깥쪽 가장자리는 계산되지 않으므로 안쪽 여백 값(일반적으로 0)이 적용됩니다. 결과 배열은 필터가 원래 이미지를 변환한 새 이미지를 나타냅니다. 이 경우 필터는 이미지에서 셰이프의 가장자리를 강조 표시하는 효과가 있습니다.
필터의 효과를 보다 명확하게 확인하려면 실제 이미지에 적용된 동일한 필터의 예는 다음과 같습니다.
원본 이미지 | 필터링된 이미지 |
---|---|
![]() |
필터링된 바나나의 ![]() |
필터가 이미지 전체에 연결되기 때문에 이러한 종류의 이미지 조작을 나선형 필터링이라고도 합니다. 이 예제에 사용된 필터는 이미지의 개체에 대한 가장자리를 강조 표시하는 특정 유형의 필터(라플레이스 필터라고 함)입니다. 흐리게, 선명, 색 반전 및 기타 효과를 만드는 데 사용할 수 있는 다른 많은 종류의 필터가 있습니다.