티스토리 뷰
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>은 흑백 이미지를 표현하는 방법이다.
![](https://blog.kakaocdn.net/dn/sXwws/btqCU6w4Aa2/v7XV6NzqHhldwJw4TVuSvk/img.png)
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 트루컬러 이미지가 구성되어 있는 방식을 그림으로 표현한 것이다.
![](https://blog.kakaocdn.net/dn/bpuosP/btqCWK7ODU5/NbMKhgkGqSRRmRwMiiS0t0/img.png)
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에 미리 저장된 색을 대응시키는 것으로 컬러 이미지를 표현할 수 있게 된다.
![](https://blog.kakaocdn.net/dn/d5r50D/btqCZ1gfRxH/zTH7OQqVECKGl4NJR0uYF1/img.png)
이렇게 서로 다른 이미지 구조는 이미지를 사용하는 함수에도 영향을 조금씩 미친다. 이는 후속문서에서 유형을 나누어 다루겠다.
<그림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
- 머신러닝
- gradient descent
- Andrew ng
- 신경망
- 이산 신호
- ML
- NLP
- 이미지
- 사진구조
- 연속 신호
- 신호 및 시스템
- rnn
- Logistic Regression
- RGB이미지
- 딥러닝
- 영상구조
- 매트랩
- 컴퓨터 과학
- 인덱스 이미지
- CS
- 머신 러닝
- Neural Network
- 순환 신경망
- CNN
- 밑바닥부터 시작하는 딥러닝
- 매트랩 함수
- 이미지처리
- 영상처리
- 컴퓨터과학
- 자연어 처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |