2012-10-14 2 views
0

나는 imagesc(image); 명령을 사용할 때마다 결과 이미지에 노란색 영역이 있고 배경이 빨간색임을 관찰했습니다.세분화를 위해 imagesc 사용

이러한 이미지 영역을 구분할 수있는 방법이 있습니까? 그렇지 않은 경우 임계 값에 사용할 수있는 비슷한 패턴이 있거나 의미없는 색상 표현입니까?

Windows에서 Matlab R2012a를 사용하고 있습니다.

답변

3

imagesc (이미지 축척의 약자)를 사용하는 경우 해당 행렬의 가장 낮은 값을 색상 표의 한쪽 끝으로 매핑하고 가장 높은 값을 다른 끝으로 매핑하여 행렬을 시각화합니다.

기본적으로 MATLAB은 일반 RGB- 색상 범위 인 jet() 색상 표를 사용합니다. 이미지의 일부가 노란색으로 밝혀지면 행렬 요소가 가장 높은 값과 가장 낮은 값 사이의 spesific 한 위치에 있음을 의미합니다.

희망 아래의 예는이보다 명확하게 설명하고 방법을 보여줍니다 당신이 (정말 그 자체를 어떤 색깔이없는) 매트릭스의 "노란색"지역 밖으로 세그먼트

colorRes = 256; 

%# In a jet colormap with size 256, yellow is at placement 159 
yellow = 159; 
yellowScale = ((yellow/256)); 

image = repmat(1:colorRes,40,1); 

figure(1);clf; 
colormap(jet(colorRes)) 

subplot(2,1,1) 
imagesc(image) 
title('Original image') 

%# Segment out yellow 
colorDist = 1/colorRes*5; %# Make scalar higher to include colors close to yellow 
imageSegmented = zeros(size(image)); 
imageSegmented(abs(image/colorRes-yellowScale)< colorDist) = 1; 

subplot(2,1,2) 
imagesc(imageSegmented) 
title('Yellow segmented out') 

enter image description here