Отображение трех разных краевых изображений на одном рисунке для сравнения (без субплота)

Здравствуйте, друзья, я применил функцию обнаружения краев Канни к трем различным изображениям и получил три изображения краев кругов трех разных размеров. Я хочу показать эти три края окружностей разного радиуса на одной фигуре, но разными цветами, чтобы сравнить их. Как это можно сделать? Я пытался использовать команду imfused, но не получил желаемого результата. пожалуйста, помогите мне

1 ответ

Вот быстрое решение, но это может быть не самый лучший метод:

% edge detection
I = imread('circuit.tif');
bw1 = edge(I,'canny');
bw2 = edge(I,'sobel');

% black result image (it could be anything else)
imrgb = repmat(zeros(size(bw1)), [1 1 3]);

% color matrices, red and green
rm = repmat(cat(3,1,0,0),size(bw1,1),size(bw1,2));
gm = repmat(cat(3,0,1,0),size(bw1,1),size(bw1,2));

% logical matrices with same dimension as the result image
lm1 = repmat(bw1,[1 1 3]);
lm2 = repmat(bw2,[1 1 3]);

% overwrite pixel positions from the color matrices according to the logical matrices 
% logical matrices were derived from the edge detected ones
imrgb(lm1) = rm(lm1);
imrgb(lm2) = gm(lm2);

imshow(imrgb)
Другие вопросы по тегам