2014-02-17 2 views
-4

그레이 스케일 이미지를 rgb 이미지로 변환하려고합니다. 나는 인터넷을 검색하고이 코드를 발견그레이 스케일 이미지를 풀 컬러로 rgb로 변환하는 방법은 무엇입니까?

rgbImage = repmat(grayImage,[1 1 3]); 
rgbImage = cat(3,grayImage,grayImage,grayImage); 

하지만 이것은 단지 3-D 매트릭스와 그레이 스케일의 이미지를 제공한다 수행합니다. 나는 그것을 진정한 컬러 이미지로 변환 할 수있는 방법을 원한다.

+3

당신은 어떻게 색상을 회색으로 변환합니까? 채색 기준을 지정해야합니다. 회색 이미지에 컬러 정보가 없습니다. –

+4

이것은 실제 질문이 아니거나 현장 지식이 부족합니다. – DevNull

+0

먼저 'uncrop' 함수를 사용하여 잃어버린 모든 데이터를 마술처럼 되 찾으십시오. 가로등에서 약간의 반사를 얻으십시오. – DevNull

답변

3

회색조 버전에서 직접 컬러 이미지를 복구 할 수 없습니다. 의견에서 @Luis Mendo가 올바르게 말했듯이, 필요한 정보는 물리적으로 거기에 저장되지 않습니다.

당신이 할 수있는 것은 강도 수준과 색상 사이의 매핑을 생각해 내고 보간법을 사용하여 놀아보십시오. 그러나 이렇게하면 좋은 결과는 나오지 않지만 원하는 색상 매핑 정보는 아주 멀리 떨어져있을 수 있습니다.

다른 색상 이미지가 있고 회색조 이미지에 색상을 맞추려면 다음을 참조하십시오. http://blogs.mathworks.com/pick/2012/11/25/converting-images-from-grayscale-to-color/.
특히 여기에 인용 된 기능은 http://www.mathworks.com/matlabcentral/fileexchange/8214-gray-image-to-color-image-conversion#comments입니다.

이 작업이 느려지고 큰 결과를 내지 못한다는 사실을 염두에 두십시오. 그러나 나는 훨씬 더 많은 작업을 수행 할 수 있다고 생각하지 않습니다.

2

예 회색조 이미지를 rgb로 직접 변환하는 것은 불가능합니다.하지만 이것을 추가하여 기능을 추가하거나 rgb의 회색조 이미지에서 가장자리와 비슷한 것을 표시하는 것이 가능합니다. .

RR, RG, RB는 RGB 기본 이미지입니다
rgb = zeros([size(I_temp) 3]); 

rgb(:,:,1) = im2double(rr); 

rgb(:,:,2) = im2double(rg)+.05*double(I_temp) ; 

rgb(:,:,3) = im2double(rb); 

..

관련 문제