procesamiento - obtener valores rgb de una imagen en matlab
¿Cómo puedo trazar una imagen(.jpg) en MATLAB tanto en 2D como en 3D? (1)
Tengo un diagrama de dispersión 2-D y, en el origen, quiero mostrar una imagen (no un cuadrado colorido, sino una imagen real). ¿Hay alguna manera de hacer esto?
También estaré trazando una esfera 3D en la que me gustaría que una imagen se muestre también en el origen.
Para parcelas 2-D ...
La función IMAGE es lo que estás buscando. Aquí hay un ejemplo:
img = imread(''peppers.png''); %# Load a sample image
scatter(rand(1,20)-0.5,rand(1,20)-0.5); %# Plot some random data
hold on; %# Add to the plot
image([-0.1 0.1],[0.1 -0.1],img); %# Plot the image
Para parcelas 3-D ...
La función de IMAGE ya no es apropiada, ya que la imagen no se mostrará a menos que el eje se vea directamente desde arriba (es decir, a lo largo del eje z positivo). En este caso, tendrá que crear una superficie en 3-D utilizando la función SURF y la textura del mapa en la imagen. Aquí hay un ejemplo:
[xSphere,ySphere,zSphere] = sphere(16); %# Points on a sphere
scatter3(xSphere(:),ySphere(:),zSphere(:),''.''); %# Plot the points
axis equal; %# Make the axes scales match
hold on; %# Add to the plot
xlabel(''x'');
ylabel(''y'');
zlabel(''z'');
img = imread(''peppers.png''); %# Load a sample image
xImage = [-0.5 0.5; -0.5 0.5]; %# The x data for the image corners
yImage = [0 0; 0 0]; %# The y data for the image corners
zImage = [0.5 0.5; -0.5 -0.5]; %# The z data for the image corners
surf(xImage,yImage,zImage,... %# Plot the surface
''CData'',img,...
''FaceColor'',''texturemap'');
Tenga en cuenta que esta superficie está fija en el espacio, por lo que la imagen no siempre estará orientada directamente hacia la cámara a medida que gira los ejes. Si desea que la superficie del mapa de textura gire automáticamente para que siempre esté perpendicular a la línea de visión de la cámara, es un proceso mucho más complicado.