нарисуйте прямоугольник поверх наложенных изображений - PullRequest
2 голосов
/ 07 июля 2011

Я хотел бы наложить два изображения в MATLAB (I и imagesc(data)), а затем нарисовать прямоугольник поверх них.I2 указывает шаблон прозрачности в следующем коде.Прямоугольник становится линией сверху изображения.Может кто-нибудь сказать мне, почему прямоугольник нарисован неправильно?

imshow(I);           
hold on;
h = imagesc(data,[0,1]);    
hold off;
I2 = ones(height,width) * 80;
set(h, 'AlphaData', I2);
rectangle('Position',[100,100,20,20]);    

1 Ответ

6 голосов
/ 07 июля 2011

Поскольку мы не можем точно воспроизвести ваш код без всех данных, вот полный пример с образцами изображений:

%# some sample images
I = imread('coins.png');
I_transp = imread('peppers.png');

%# create a gaussian mask for transparency
[r,c,~] = size(I_transp);
M = fspecial('gaussian', [r c], mean([r c]./5));
M = (M-min(M(:)))./range(M(:));

%# show overlayed images
figure, imshow(I, 'XData',[1 c], 'YData',[1 r]), hold on
hImg = imshow(I_transp);
set(hImg, 'AlphaData',M);

%# draw a rectangle
rectangle('Position',[355 220 100 100], 'LineWidth',2, 'EdgeColor','b');

enter image description here

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