개발자 끄적끄적
영상과 Matlab 본문
<그레이스케일 영상>
- Matlab
- 매드릭스와 매트릭스 연산을 강력하게 지원하는 데이터 해석용 소프트웨어 패키지
- 명령어 및 처리 방법
>>
>> w=imread('wombats.tif');
- ';' : 데이터를 억제하는 기능
- '>>' : prompt
- 명령어 및 처리방법(디스플레이)
imshow('wombats.tif') -> wombats.tif는 파일명
>> figure, imshow(w), pixval on
1. On-line 상에서 3개의 명령이다
2. Matlab은 다른 명령들을 분리하기 위해 콤마(,)를 이용한다
3. Figure : 스크린에 그림을 만든다(여러개 영상을 띄워놓고 비교가 가능하다)
4. Imshow(g) : 영상으로서 매트릭스를 디스플레이한다
5. Pixval on : 그림에 해당 화소값들을 turn on 한다
<RGB 영상>
- RGB 모델
- 영상의 디스플레이와 저장을 위해 사용
- 0~255의 범위 내의 정수
- 대각선 : 흑-백 라인
- 칼라는 RGB의 모든 값들이 동일한 공간의 점들
- 총 24bit RGB 영상
- 다차원 배열(Multidimensional array) : 3차원 매트릭스를 의미
<RGB 모델 표현의 예>
1. 파일 읽기
>> a=imread('autumn.tif');
>> figure, imshow(a), pixval on
2. 크기 확인
>> size(a)
3. 데이터 수정 : 가로100, 세로 200에 해당하는 곳에 2를 할당
>> a(100,200,2) //칼라영상의 채널이 3개(Red, Green, Blue)에서 2번째 채널(Green)의 색깔
<인덱스화 칼라 영상>
- Emu의 칼라 영상을 생성
>>figure, imshow('emu.tif'), pixval on
- 매트릭스를 생성 후 컬러 영상을 디스플레이 하는 방법
>> em=imread('emu.tif');
>> figure, imshow(em), pixval on
- 단일 해당 영상이 매트릭스로 해당 인덱스만을 선택
>> [em, emap] = imread('emu.tif'); //em은 index(즉 address), emap는 color map(table)
>> imshow(em) //컬러영상
>> imshow(emap)
>> imshow(em, emap) //정상적인 영상 즉, imshow('emu.tif') 이 나온다
>> figure, imshow(em,emp), pixval on
-> Emu.tif는 인덱싱 영상의 한가지 예이다
-> 2개의 매트릭스로 구성되며, 칼라 맵과 칼라 맵에 대한 인덱스이다
<영상에 관한 정보>
- imfinfo 함수 : 영상에 관한 정보를 획득할 수 있다
- 화소에서의 영상바이트
파일(바이트)의 사이즈,
화소 당 비트 수(Bit-Depth),
칼라 형태(이 경우 인덱스화),
영상 파일에 필요한 기타 정보들
<데이터 형식과 변환>
- Matlab 매트릭스의 원소들은 많은 다른 수치적 데이터를 가지고 있다
<Matlab의 데이터 형식(Data types in MATLAB>
int8(8-bit integer)
uint8(unsigned integer 8-bit, 8비트의 부호없는 정수 즉, 0~255)
int16(16-bit integer)
uint16(16-bit unsigned integer)
double(Double precision real number)
<Matlab의 영상 변환 함수(Covering images in MATLAB)>
ind2gray(indexed to grayscale) -> y=ind2gray(x, map);
gray2ind(Grayscale to indexed) -> [y, map]=gray2ind(x);
rgb2gray(RGB to grayscale) -> y=rgb2gray(x);
gray2rgb(Grayscale to RGB) -> y=gray2rgb(x);
rgb2ind(RGB to indexed) -> [y, map]=rgb2ind;
ind2rgb(Indexed to RGB) -> y=ind2rgb(x,map);