2012-02-10 45 views
0

ガウスフィルターをかけて画像がインデックスになりました。私はimagescを使用して色の違いを判断する必要があります。どのようにしてそれをrgbに変換して、私はさらなる処理を行うことができますか?MATLABでインデックス画像をrgb画像に変換する方法は?

編集済みいくつかの画像を追加しました。先頭に「元画像」、「imshow(C)」、「imagesc(C)」がそれぞれ追加されました。それでは、 'C'変数をimagescイメージのようにしたいだけです。出来ますか??ここでを編集

enter image description here enter image description here enter image description here

は私のコーディングで、ガウスからご覧以降

% Read Image 
rgb = imread('barcode.jpg'); 
% Resize Image 
rgb = imresize(rgb,0.33); 
%figure(),imshow(rgb); 
% Convert from RGB to Gray 
Igray = rgb2gray(rgb); 
BW2 = edge(Igray,'canny'); 
%figure(),imshow(BW2); 
% Perform the Hough transform 
[H, theta, rho] = hough(BW2); 
% Find the peak pt in the Hough transform 
peak = houghpeaks(H); 
% Find the angle of the bars 
barAngle = theta(peak(2)); 
J = imrotate(rgb,barAngle,'bilinear','crop'); 
%figure(),imshow(J); 
Jgray = double(rgb2gray(J)); 
% Calculate the Gradients 
[dIx, dIy] = gradient(Jgray); 
%if min(dIx(:))<= -100 && max(dIx(:))>=100 || min(dIy(:))<=-100 && max(dIy(:))>=100 
if barAngle <= 65 && barAngle >=-65 && min(dIx(:))<= -100 
    B = abs(dIx) - abs(dIy); 
else 
    B = abs(dIy) - abs(dIx); 
end 
% Low-Pass Filtering 
H = fspecial('gaussian', 20, 10); 
C = imfilter(B, H); 
C = imclearborder(C); 
figure(),imshow(C); 
figure(),imagesc(C);colorbar; 
+0

RGBでガウス分布を適用してシングルチャンネル画像を取得した場合、プロセスに問題が発生する可能性があります。コードを表示できますか? –

答えて

1
RGB = ind2rgb(X,map) 

RGBは、この時点でちょうど目キャンデーで、あなたは魔法のようにすることはできませんそこにない情報を追加してください。コードで

EDIT

Bは点でそれが画像に由来勾配dIxdIyから構成されていることに起因する階調であるため、Cは、グレースケール画像であり、 Jgray = double(rgb2gray(J));

+0

どうすればこのコードを自分のコーディングに実装できますか? – Kim

+0

@キム、それはあなたがここで達成しようとしているものに完全に依存します。 – Maurits

関連する問題