Наложение изображения с матрицей

У меня есть изображение (png), которое я хочу поместить под тепловую карту (так сказать), сделанную из a и 2D-матрицы со значениями 0-1. Таким образом, интенсивность пятна будет определяться тем, насколько велико значение в матрице.

Я могу использовать imshow(matrix), но это полностью перекрывает изображение внизу. Возможно ли не рисовать пиксели со значениями матрицы ‹ 0,05 или каким-либо другим способом заставить это работать?


person Michael    schedule 29.06.2011    source источник


Ответы (2)


Вот пример наложения бинарной тепловой карты поверх цветного изображения:

%# some image
I = im2double( imread('peppers.png') );

%# I create here a random mask (gaussian centered in middle of image)
[r,c,~] = size(I);
[X Y] = meshgrid(1:r,1:c);
Z = mvnpdf([X(:) Y(:)], [r c]./2, diag(15.*[r c]));
Z = (Z-min(Z(:)))./range(Z(:));
Z = reshape(Z',[c r])';

%# show image and mask separately
subplot(121), imshow(I)
subplot(122), imshow(Z)

%# show overlayed images
figure, imshow(I), hold on
hImg = imshow(Z); set(hImg, 'AlphaData', 0.6);

%# also we can specify a colormap
colormap hsv

введите здесь описание изображениявведите здесь описание изображения введите здесь описание изображения

person Amro    schedule 29.06.2011
comment
если вы используете 2-D матрицу с 'AlphaData', то вы можете применять цветовую карту в выбранных местах, не затрагивая другие области изображения. - person Autonomous; 14.04.2014
comment
@ParagS.Chandakkar: да, в приведенном выше примере мы можем использовать саму матрицу маски Z в качестве альфа-карты: h=imshow(I); set(h, 'AlphaData',Z) (в этом случае изображение становится прозрачным, показывая серый фон фигуры за ним) - person Amro; 14.04.2014

загруженный png будет трехмерной матрицей. Вы можете преобразовать двухмерную двоичную матрицу в трехмерную с помощью repmat. Затем измените размер двоичной матрицы, чтобы она была того же размера, что и png с imresize. Наконец, вы можете показать две матрицы, смешанные с чем-то вроде imshow(alpha(myPng) + (1-alpha)*(myBinaryMat)) где alpha — это параметр смешивания между 0 и 1.

person BlessedKey    schedule 29.06.2011