[MATLAB]makecform 함수

MATLAB 2013. 4. 5. 17:09

makecform(): Create a color transformation structure.



※ RGB->Lab 변환






반응형

[MATLAB]roipoly() 함수(영역지정)

MATLAB 2013. 4. 5. 16:13

roipoly() function: Select polygonal region of interest.



roipoly 함수를 이용하여 해당 영역을 지정할 수 있다.


Example

>> img=imread('baboon.jpg');

>> roipoly(img)


직접 해당 영역을 직접 지정하여 오른쪽 마우스 버튼을 누르면 2번째 그림처럼 지정한 영역부분이 영역처리 된걸 볼 수 있다.

반응형

[MATLAB]웹캠 영상 불러오기

MATLAB 2013. 4. 5. 13:35

Matlab의 도움말에 상세히 나와있다. command window에 doc 를 입력하여 도움말을 참고하여 작업하자.



1. 웹캠 사용하기

imaqhwinfo  pc에 연결된 카메라 장치 확인(아래 그림에서는'winvideo' 하나가 잡혔다)

device.SupportedFormats  winvideo에서 제공하는 색공간 해상도 

위 그림의 결과 16가지의 선택을 할 수 있다는걸 확인 할 수 있다.


아래의 그림과 같이 입력하면 직접해상도를 선택하여 출력 할 수 있다.



반응형

[영상처리]그레이 스케일 변경(Gray-Scale Modification)

MATLAB 2013. 4. 3. 19:30
영상 밝기와 대비를 조정하기 위해 매칭함수 사용



생각중


Ex)(10,50) 범위의 gray level을 (10,250)범위로 확장





◆ Negative

사진의 음화와 같은 영상을 구함



◆ Gray-level slicing

영상의 특정 범위의 밝기를 강조



◆ Gray-level slicing

좁은 범위의 입력 레벨을 넓은 범위의 출력 레벨로 확장함  명암대비가 높아짐



◆ gamma correction

대수 변환과 마찬가지로 낮은 명암도의 좁은 범위를 넓은 범위의 출력 명암도로 매핑

감마 보정으로 골절 탈구와 척수 인대 충돌 증상을 띠는 상부 흉곽 척수의 MRI영상을 상세히 표현



반응형

[영상처리]다중 영상 더하기와 빼기

MATLAB 2013. 3. 26. 14:40

2.산술연산(다중영상)

덧셈 연산 : 두 영상의 정보를 결합하는데 사용

뺄셈 연산 : 영상 내 물체의 움직임을 식별, 배경 제거나 조명 균일화에 사용


두 영상 더하기


두 영상 빼기



반응형

[영상처리]영상의 밝기 조절과 명암대비 조절

MATLAB 2013. 3. 26. 14:15

1.산술연산(단일영상)

덧셈, 뺄셈 연산    : 영상의 밝기를 조정함.

곱셈, 나눗셈 연산 : 영상의 명암대비(constrast)를 조정함.


명암도(gray level) 영상은 보통 256 레벨[0,255]을 가지고 있는데, 레벨이 증가할수록 밝아지고 감소할수록 어두워짐.


레벨별 명암(black ->white)


명암대비는 영상 내의 가장 밝은 부분과 가장 어두운 부분과의 상대 비율.

● 낮은 명암대비 : 영상 내 대부분이 어둡거나 밝거나 흐리다. 즉 밝기값들이 어느 한쪽에 치우쳐 있다.

● 높은 명암대비 : 영상 내 어둡고, 밝은 부분이 다 포함된다. 즉 밝기값의 분포가 고르게 분포되어 있다.


명암 대비를 증가시키려면 곱셈 연산      영상을 보다 선명하게 부각

명암 대비를 감소시키려면 나눗셈 연산   영상의 선명도를 낮추는 역활


덧셈 연산 (+50)


뺄셈 연산 (-50)


곱셈 연산 (*1.5)


나눗셈 연산 (/1.5)



반응형

[MATLAB]컬러영상을 명암도영상으로 변환

MATLAB 2013. 3. 8. 15:50

1. 컬러(color)영상을 명암도(gray) 영상으로 변환하는 함수 rgb2gray()



반응형

[MATLAB]영상 읽기,보여주기,저장하기

MATLAB 2013. 3. 8. 15:10

1. 영상 읽기

imread('filename')


>>img= imread('sistar.jpg');


함수 size는 영상의 행 및 열의 크기를 알려준다.

>>size(img)

ans=

474 721

[R C X]= size(img);

행 수(R), 열 수(C), 차원 수(X)를 반환한다.


함수 whos는 배열에 관한 추가 정보를 표시

whos img

Name              Size                           Bytes  Class

color_image     474x721x3                      1025262  uint8 array

Grand total is 1025262 elements using 1025262 bytes


2. 영상 보여주기

imshow(img)


함수 pixval은 개별 픽셀들의 밝기 값을 표시한다. 

이 함수는 영상 위에 마우스로 커서를 움직임에 따라 커서 좌표와 해당 밝기 값이 그림 윈도우의 밑에 표시된다. 마우스를 좌측 클릭한 상태로 누르고 있으면 pixval은 처음과 현재 커서 위치 간의 유클리드 거리를 표시한다.


3. 영상 저장하기

imwrite(img,'filename')


여기서 filename의 문자열은 인식 가능한 확장자를 가져야 하지만, 세번째 인자로서 명기할 수도 있다.

예를 들면, img를 이름이 sis인 tiff파일에 쓴다면,

>>imwrite(img, 'sis', 'tif')

또는

>>imwrite(img, 'sis.tif')


imwrite(img, 'sis.jpg','quality',q)

여기서 q는 0~100사이의 정수이다(작을수록 JPEG 압축에 의한 열화가 크다).





반응형

[MATLAB]자주 쓰는 명령어(계속 업뎃)

MATLAB 2013. 2. 5. 15:39

역행렬

B = inv(A) %B = A의 역행렬

 

제곱근

sqrt(A) %A.^(1/2)

sqrtm(A) %A^(1/2)

 

최대 값 찾기

max(A) %A의 각 열의 최대 원소 찾기

[y,i] = max(A) %벡터 y에A의 각 열의 최대값 표시

 

행렬식(determinabt)

det(A)

 

대각합(trace)

trace(A) %정방행렬에서 대각 성분의 합

 

대각행렬

diag(3)

 

0 으로 구성된 행렬

zeros(3)

zeros(2,1) %2행1열 0행렬


1 으로 구성된 행렬

ones(3)

응용

z=ones(3);

z=z*k; %k 값으로 구성된 행렬


A=[s:n:e] %s에서 e까지 n을 더한값으로 구성


단위 행렬(identity matrix)

eye(3)

 

평균

mean(A) %

 

분산()

var(A) %

 

표준편차()

std(A) %

 

공분산

cov(A) %

 

벡터의 전치(transpose)

A'

 

벡터의 크기

norm(A)

 

내적(dot product or inner product)

dot(A,B) %차원이 동일한 두 개의 벡터 A,B에 대하여 대응되는 성분별로 곱하여 합하는 것, 결과는 실수 스칼라

 

외적(cross product)

cross(A,B)

 

sin(A)

cos(A)

tan(A)

 

asin(A)  %Inver sine result in radians

acos(A) %Inver cosine result in radians

atan(A)  %Inver tangent result in radians

pi = 3.1416

rad2deg(A) = A*180/pi %Converts angles from radians to deg:min:sec vector format

deg2rad(A) = A*pi/180 %Converts angles from radians to degrees 

 

랜덤 수(random number)

rand(n,k) %랜덤 수 ~ 구간[0, 1]에서 균등 분포

A= a+(b-a).*rand(n,k) %a~b 사이의 값 발생, n:행, k열

예를 들어, -4~5사이의 3행 3열의 랜덤 수을 발생 시키려면

A= -4 + (5 + 4).*rand(3,3)

 

가우시안 랜덤 수(Gaussian random number)

randn(n,k) %Gaussian random number 를 발생기키는 함수, randn() 함수는 평균()이 0이고, 분산()이1인 가우시안 랜덤 수를 발생 시킨다.

예를 들어 평균이 3이고 분산이 9인 3행 4열 가우시안 랜덤 수를 발생시키려면

A= randn(3,4) * sqrt(9) + 3

 

randperm(k) %1:k 까지의 값들을 random 하게 나열한다.

 

axis equal %가로 세로 비율을 도일하도록 설정

 

dist(A,B') %유클리디안 거리 구하기

두 점 a=(a1,a2,a3,...,an), b=(b1,b2,b3,...,bn)의 유클리안 거리 공식은 아해와 같다.



반올림 함수

ceil()    % +방향으로 반올림

floor()   %-방향으로 반올림

round() % 가까운 정수로 반올림

fix()      % 0 방향으로 반올림


size(A)

size(A,dim) %dim = 1 -행, dim = 2 -열  


확장함수

repmat(A,2,3) %A는 배열을 확장 시키고자 하는 배열, 2행3열의 크기로 확장 시키는 함수


Diglog box

uigetdir %Standard dialog box for selecting a directory 

directory_name = uigetdir %opens a dialog box in the current directory displaying the default title.

directory_name = uigetdir('start_path') %opens a dialog box in the directory specified by start_path.

directory_name = uigetdir('start_path','dialog_title') %opens a dialog box with the specified title.

%uigetdir 은 다이로그박스에서 선택한 폴더의 경로를 반환해준다.


inputdlg %Create input dialog box

prompt = {'Enter matrix size:','Enter colorpam neme:'};

dlg_title = 'Input for peaks function';

num_lines= 1;

def = {'20','hsv'};


answer  = inputdlg(prompt,dlg_title,num_lines,def);





재배열

reshape(A,m,n) %A:변환할 배열, m:행,n:열로 변환


roipoly(); %Select polygonal region of interest.


scatter()


명암도 공간변환 rgb2gray 함수

filename = 'sistar.jpg';

color_image = imread(filename);


gray_image = rgb2gray(color_image);


figure(1);

subplot(1,2,1);

imshow(color_image );

title('컬러 영상');

subplot(1,2,2);

imshow(gray_image );

title('명암도 영상');

반응형