개발자 끄적끄적

영상과 Matlab 본문

영상처리

영상과 Matlab

햏치 2023. 3. 10. 00:36

<그레이스케일 영상>
- 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);

'영상처리' 카테고리의 다른 글

영상의 디스플레이  (1) 2023.03.16
영상처리 개요  (0) 2023.03.09
영상처리 기본  (0) 2023.03.08