Как преобразовать проиндексированное изображение в изображение RGB в MATLAB? - PullRequest
0 голосов
/ 10 февраля 2012

Я сделал фильтр Гаусса, и изображение стало индексом.Я должен использовать imagesc, чтобы показать разницу цветов.Как я могу преобразовать его в rgb, чтобы я мог продолжить процесс.

Отредактировано Добавлены некоторые изображения, сверху - «исходное изображение», «imshow (C)», «imagesc (В) 'соответственно.Тогда я просто хочу, чтобы переменная '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;

1 Ответ

1 голос
/ 10 февраля 2012
RGB = ind2rgb(X,map)

RGB на данный момент просто приятен, вы не можете волшебным образом добавлять информацию, которой там нет.

EDIT

В вашем коде C - это изображение в оттенках серого, потому что B - это оттенки серого, что в терминах обусловлено тем, что оно состоит из градиентов dIx и dIy, которые происходят из изображение, вы сами делаете оттенки серого явно с помощью линии Jgray = double(rgb2gray(J));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...