Tengo una imagen (png) que quiero poner debajo de un «mapa de calor» (por así decirlo) de a y una matriz 2D de valores 0-1. De modo que la intensidad de la mancha sería decidido por grande que sea el valor en la matriz.

Puedo usar imshow(matriz), sino que completamente se dibuja sobre la imagen debajo. Es posible, tal vez, no se dibujar los píxeles con valores de la matriz <.05 o de alguna otra manera para hacer este trabajo?

OriginalEl autor Michael | 2011-06-29

2 Comentarios

  1. 7

    Aquí es un ejemplo de la superposición de un binario «mapa de calor» en la parte superior de una imagen de color:

    %# 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

    Superposición de imagen con la matriz
    Superposición de imagen con la matriz
    Superposición de imagen con la matriz

    si usted usa un 2-D de la matriz con 'AlphaData', entonces usted puede solicitar mapa de colores en el selectivo lugares, sin afectar a otras regiones en la imagen.
    sí, en el ejemplo anterior, podemos utilizar la máscara de la matriz Z a sí mismo como el alfa mapa: h=imshow(I); set(h, 'AlphaData',Z) (en el que caso de que la imagen se vuelve transparente que muestra la figura gris de fondo detrás de ella)

    OriginalEl autor Amro

  2. 1

    la carga png será de tres dimensiones de la matriz. Usted puede convertir el 2d de la matriz binaria en 3d uno con repmat. A continuación, cambiar el tamaño de la matriz binaria de modo que es el mismo tamaño que el png con imresize. Por último, puedes mostrar las dos matrices mezclado con algo como imshow(alfa(myPng) + (1-alfa)*(myBinaryMat)), donde alfa es una mezcla de parámetro entre 0 y 1.

    OriginalEl autor BlessedKey

Dejar respuesta

Please enter your comment!
Please enter your name here