티스토리 뷰
1.1 매트랩의 이미지 구조
매트랩에서 행렬 연산등을 통해 영상 처리를 하기 위해서는 당연히 매트랩이 이미지를 표현하는 방법부터 알아야할 것이다. 매트랩에서 이미지는 크게 3가지 유형으로 표현/처리되는데 다음과 같은 유형의 format이 존재한다.
- 흑백 이미지 (명암 이미지)
- RGB(트루컬러) 이미지
- 인덱스 이미지
1.1.1 흑백 이미지의 구조
우선, 흑백 영상을 다루는 것을 생각해보자. 흑백 영상에 있는 하나의 pixel은 다음과 같은 정보를 반드시 포함해야한다.
- 가로 축 좌표
- 세로 축 좌표
- 각 좌표에서 밝기의 값
이 정보는 2D array면 표시할 수 있다. row와 col이 각각 하나의 좌표가 되고 배열에 들어있는 값이 밝기의 값을 표시하면 되기 때문이다.
또한 각 pixel 밝기의 값은 0~1에서 표현될 수도 있고, 혹은 0~255에서, 혹은 0~65535에서 표현될 수도 있는데
각각 자료형이 double, uint8, uint16일 때의 범위가 된다. 이미지의 밝기를 표현하는 서로다른 방법들은 문서 1.5 imshow()에서 자세하게 다루었다.
mathwork 사이트의 예제 그림을 가져온다. 다음<그림1>은 흑백 이미지를 표현하는 방법이다.
1.1.2 RGB(트루컬러) 이미지의 구조
흑백 사진을 표현하는 방법은 쉬웠다. 그러면 컬러 사진을 표현하려면 어떻게 해야할까? 우리는 컬러 사진이 RGB삼원색으로 구성되어있다는 것을 알고있다. 따라서 필요한 정보가 다음과 같이 바뀌었을 뿐이다.
- 가로 축 좌표
- 세로 축 좌표
- 어떤 좌표에서 빨간 색의 밝기(R)
- 어떤 좌표에서 초록 색의 밝기(G)
- 어떤 좌표에서 파란 색의 밝기(B)
이 정보는 3D array를 사용하면 표현할 수 있다. 예를 들어 1920*1080의 FHD이미지를 생각해보자. 그러면 우리에게 필요한 3D array는 1920x1080x3 행렬이다. 그렇게 만든 다음
- [:,:,1]에는 R의 밝기를
- [:,:,2]에는 G의 밝기를
- [:,:,3]에는 B의 밝기를
각각 표시하면 되기 때문이다. 이런 방식으로 컬러 이미지는 설계되어있다.
(물론 픽셀-색 하나는 명확한 표현은 아니지만 이해를 쉽게 하자.)
이 밝기 값도 0~1, 0~ 255에서, 혹은 0~65535에서 표현될 수도 있는데, 각각 자료형이 double, uint8, uint16일 때이다. 이는 문서 1.5 imshow()에서 자세하게 다루었다.
다음<그림2>는 RGB 트루컬러 이미지가 구성되어 있는 방식을 그림으로 표현한 것이다.
1.1.3 인덱스 이미지(indexed image)의 구조
컬러 이미지를 나타내는 방법으로 반드시 x 곱하기 y 곱하기 3의 행렬이 필요한 것은 아니다.
예를 들어 m개의 색이 저장되어 있는 m*3의 배열을 생각해볼 수 있는데 다음과 같이 구성하자.
- 특정 행에는 3개의 열이 있으므로 각 열에 R성분, G성분, B성분을 저장한다.
- 그러면 특정 행은 특정 RGB 색을 표현할 수 있고 이 m*3의 배열을 map이라 부르자.
그러면 다음 <그림3>과 같이 특정 (x,y)의 픽셀에 map의 원소 index를 써서 map에 미리 저장된 색을 대응시키는 것으로 컬러 이미지를 표현할 수 있게 된다.
이렇게 서로 다른 이미지 구조는 이미지를 사용하는 함수에도 영향을 조금씩 미친다. 이는 후속문서에서 유형을 나누어 다루겠다.
<그림1>, <그림2>, <그림3>과 거의 모든 내용의 출처
Reference: https://kr.mathworks.com/help/matlab/creating_plots/image-types.html
'매트랩' 카테고리의 다른 글
[Matlab] 1.4 매트랩에서 이미지의 RGB 분리하기 // 사진 RGB 분리 (4) | 2020.03.22 |
---|---|
[Matlab]1.3 매트랩의 간단한 함수들 모음// size, linspace, repmat,flip (0) | 2020.03.19 |
[Matlab] 1.2 매트랩에서 이미지 불러오기, 출력하기 //사진 불러오기 (0) | 2020.03.19 |
[Matlab] 0. 카테고리 목적-Tips for Matlab (0) | 2020.03.19 |
- Total
- Today
- Yesterday
- rnn
- 영상구조
- Andrew ng
- 머신 러닝
- RGB이미지
- 이산 신호
- 이미지
- CNN
- 신호 및 시스템
- gradient descent
- 컴퓨터 과학
- ML
- 사진구조
- 연속 신호
- 이미지처리
- 딥러닝
- 영상처리
- Logistic Regression
- 자연어 처리
- CS
- 순환 신경망
- NLP
- 매트랩 함수
- 인덱스 이미지
- Neural Network
- 머신러닝
- 컴퓨터과학
- 신경망
- 밑바닥부터 시작하는 딥러닝
- 매트랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |