Computer VIsion/입문(이론편)

이미지는 어떻게 디지털화되는가?

JackSmith 2024. 8. 23.

이번시간에는 이미지라는 것이 어떻게 디지털화 되는가에 대해서 알아보도록 하겠습니다.

 

1. 이미지의 개념(Concept of Image)

 

이미지(Image)란?

 

 

이미지란 강도값을 갖고 있는 행렬을 말합니다. 지금부터는 이 행렬을 그리드라고 부르겠습니다.

이 그리드는 각각의 고유한 픽셀들로 이루어져 있습니다. 그래서 만약 아래와 같은 이미지가 있다라고 가정하겠습니다.

 

그러면 일단 해당 그림을 총 세가지 필터가 입혀졌다고 볼수있습니다.

(여기서부터는 필터를 채널로 대체해서 부르겠습니다)

바로 이 "이 새끼 뭐야"라는 사진은 총 세개의 채널, RGB채널로 이루어져 있습니다. 

여기서 Blue-Channel만 보면 위 그림이 640x480이기 때문에, 가로로 640개의 그리드로, 세로로는 480개의 그리드로 구성되어 있다는 것을 알수가 있습니다.

 

그리고 이 그리드는 픽셀로 이루어져 있으며, 각 픽셀은 특정 Strength_value를 갖게 되는 겁니다.

 

2. 픽셀 강도 값(Pixel Strength Value)

이 픽셀의 갖는 속성인 강도에 대한 값은 범위가 0~255까지 입니다. 즉 디지털화되어 메모리에 저장될때 각 픽셀모다 8비트로 구성되어 있다는 것을 알수가 있죠.

이때 0은 최소밝기로 검정색을, 255는 최대밝기로 흰색을 의미하여, 그 사이에 있는 값들은 회색 정도로 볼수가 있겠습니다.

3. 코드로 표현

위에서 배운 개념을 코드로 적용해보도록 하겠습니다. 이 코드는 흑백 이미지의 픽셀 강도값을 Two-Dimension Matrix로 생성해 놓고 이 디지털화된 데이터를 이미지화시켜서 우리 눈에 보여주는 코드입니다.

코드:

import numpy as np
import matplotlib.pyplot as plt

# 2D 행렬 생성 (이미지의 픽셀 강도 값을 나타냄)
image_matrix = np.array([
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
    [255, 75, 75, 75, 75, 75, 75, 75, 75, 255],
    [255, 75, 95, 95, 95, 95, 95, 95, 75, 255],
    [255, 75, 95, 127, 127, 127, 127, 95, 75, 255],
    [255, 75, 95, 127, 175, 175, 127, 95, 75, 255],
    [255, 75, 95, 127, 175, 175, 127, 95, 75, 255],
    [255, 75, 95, 127, 127, 127, 127, 95, 75, 255],
    [255, 75, 95, 95, 95, 95, 95, 95, 75, 255],
    [255, 75, 75, 75, 75, 75, 75, 75, 75, 255],
    [255, 255, 255, 255, 255, 255, 255, 255, 255, 255]
])

# 이미지 출력
plt.imshow(image_matrix, cmap='gray', vmin=0, vmax=255)
plt.colorbar(label='Pixel Intensity')
plt.title('Grayscale Image from Matrix')
plt.show()

 

결과:

 

위와 같이 저희가 일일이 숫자를 기입하여 Strength Value(Array)를 만들었습니다. 여기다가 블루 필터를 입히게 되면은

블루채널이 만들어지게 되는 겁니다. 이런 방식으로 Red Channel과 Green Channel을 만들어서 합치면?

우리가 원하는 오리지널 이미지를 구할수 있게 되는 것입니다.

 

 

정정: 제가 위에서 채널과 필터에 대해서 같은 걸로 간주해서 설명했었는데 착오가 있었습니다. 채널은 필터와 강도값을 합친 것이라 볼수가 있겠습니다.

Blue Channel = Blue Filter + Strength Value(Array)

 

 

 

긴 글 읽어주셔서 감사합니다:):)

댓글