edgecolor of pixels of imagesc

45 visualizaciones (últimos 30 días)
Ankit Labh
Ankit Labh el 25 de Mayo de 2020
Comentada: DGM el 25 de Mayo de 2022
I want the black edge color for the boundaries of each pixel drawn using imagesc. If I use pcolor, I get the black boundary around pixels. How can I get the same using 'imagesc'?

Respuestas (3)

Image Analyst
Image Analyst el 25 de Mayo de 2020
Editada: Image Analyst el 25 de Mayo de 2020
You can't. And if you use pcolor, you don't either. The tiles you see in pcolor are NOT pixels. Look closely. If you want to show a 4x4 array with pcolor, do you see a 4x4 array of pixels?
m = magic(4)
pcolor(m);
No, you don't. Those black lines goes through the MIDDLE of the pixels, they don't surround them. And to make it worse, you see a 3x3 array of tiles, not a 4x4 array. Very deceiving so that's why I never use pcolor().

Aaron T. Becker's Robot Swarm Lab
Aaron T. Becker's Robot Swarm Lab el 25 de En. de 2021
The function pixelgrid superimposes a grid of pixel edges on an image. The purpose is to easily visualize pixel extents when zooming in closely on an image. The grid is drawing using lines with contrasting colors so that it is visible regardless of the colors of the underlying pixels.
Cite As
Steve Eddins (2021). Pixel Grid (https://github.com/mathworks/pixelgrid), GitHub. Retrieved January 25, 2021.

Rongxing Hu
Rongxing Hu el 24 de Mayo de 2022
You could use plot to add the edge lines
edge_x = repmat( [0:length(xdata)]+0.5, length(ydata)+1,1)
edge_y = transpose( repmat( [0:length(ydata)]+0.5, length(xdata)+1,1) )
plot(edge_x ,edge_y, ' k') % vertical lines
hold on
plot( transpose(deg_x), transpose(edge_y ), 'k') % horizontal lines
  1 comentario
DGM
DGM el 25 de Mayo de 2022
You can use the editor tools to run the example code in-situ to create a more complete demonstration of the code.
m = magic(4)
m = 4×4
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
imagesc(m); hold on
nx = size(m,2);
ny = size(m,1);
edge_x = repmat((0:nx)+0.5, ny+1,1);
edge_y = repmat((0:ny)+0.5, nx+1,1).';
plot(edge_x ,edge_y, ' k') % vertical lines
plot(edge_x.', edge_y.', 'k') % horizontal lines

Iniciar sesión para comentar.

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by