Matlab - Añadir una imágen en otra

 
Vista:
sin imagen de perfil

Añadir una imágen en otra

Publicado por Alberto (24 intervenciones) el 23/03/2013 18:07:11
Mi duda es algo parecida a esta pero un poco más compleja. Parto de una Matriz A y una B por ejemplo:

A=
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

B=
44 44
44 44

Entonces que a partir de un pixel seleccionado en la matriz A, por ejemplo el (2,2) se añada "machacando" la matriz B. El resultado sería

C=

1 2 3 4
5 44 44 8
9 44 44 12
13 14 15 16

Necesito hacer algo así para incluir una imágen en otra a través de un click con el ratón. Básicamente tengo una plantilla musical en la que añadirle notas, de manera que cuando el usuario haga click en una determinada zona en la imágen de la plantilla se añada la nota musical, para posteriormente guardar la partitura completa.

Sé que es un poco engorroso y espero haberme explicado bien, si alguien puede arrojarme algo de luz será BIENVENIDO.Muchas gracias¡¡¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Añadir una imágen en otra

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/03/2013 07:42:02
Hola Alberto.
Este programa es el inverso de que lo quieres hacer, creo que te va a servir para lo que quieres hacer, estúdialo y adáptalo para tu pregunta. Ah este código está en la misma ayuda de matlab. Busca la ayuda de ginput().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
% Read RGB image from graphics file. 
im = imread('street2.jpg');
 
% Display image with true aspect ratio
image(im); axis image
 
% Use ginput to select corner points of a rectangular
% region by pointing and clicking the mouse twice
p = ginput(2);
 
% Get the x and y corner coordinates as integers
sp(1) = min(floor(p(1)), floor(p(2))); %xmin
sp(2) = min(floor(p(3)), floor(p(4))); %ymin
sp(3) = max(ceil(p(1)), ceil(p(2)));   %xmax
sp(4) = max(ceil(p(3)), ceil(p(4)));   %ymax
 
% Index into the original image to create the new image
MM = im(sp(2):sp(4), sp(1): sp(3),:);
 
 
% Display the subsetted image with appropriate axis ratio
figure; image(MM); axis image
 
% Write image to graphics file. 
imwrite(MM,'street2_cropped.tif')




Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Añadir una imágen en otra

Publicado por Alberto (24 intervenciones) el 03/04/2013 20:37:59
Gracias Jose, no había visto este ejemplo de Matlab, puede que me sirva para una parte del proyecto.
El programa que tengo que hacer lo veo algo complicado... y llevo varios días dándole vueltas a como poder meterle mano. Es una interfaz de creación de partituras, de manera que el usuario tenga a un lado de la interfaz las notas y a otro lado una partitura en blanco, y con el ratón seleccione una nota y luego indique donde quiere que sea añadida a la partitura según la colocación en las cinco líneas de el pentagrama en blanco.... No se cómo restringir el que se añáda la nota en las posiciones correctas del pentagrama, sin que el usuario pueda pintar la nota en cualquier sitio (donde no tendría valor musical). Las partituras no deben ser muy complejas.
Si se le ocurre alguna forma de abordar el problema estaría muy interesado en otra opinión. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar