Matlab - imagenescomparando

 
Vista:

imagenescomparando

Publicado por alexanchz (9 intervenciones) el 06/10/2011 04:18:10
consulta por favor;
tengo:''t'' una imagen cargada y duardada y ''p'' otra imagen que en este caso es la imagen 't'solo que en grises,me piden comparar dos imagenes y eso es lo que no entiendo, matlab me recibe las imagenes y las guarda como una matriz,cuando me piden comparar eh buscado y eh encontrado el comando ''corr2'' que sirve para comparar,lo eh aplicado a estas dos imagenes pero me sale error esta mal mi aplicacion a la hora de comparar o necesito otro comando,ya que si me piden comparar supongo que matlab compara como matrices,esa es mi duda ya que si yo comparo una imagen gris y una a color en este caso sus matrices son distintas,que comando es sugerible para comparar imagenes,o estoy aplicando mal el corr2 ya que si yo comparo matriz si me las compara pero con mis imagenes no,salvo esan imagenes en gris iguales o distintas donde estara el error,quizas en las dimensiones de las imagenes,supongo.
>>[c,d]=uigetfile({'*.jpg';'*.png';'*.bmp'});
>>t=imread([d,c]);
>>imshow(t)
>>figure(2)
>>g=rgb2gray(t);
>>imshow(g)
;
para vectores
A =

4 5 6
5 7 8

>> B=[2 3 4;4 5 6]

B =

2 3 4
4 5 6

>> corr2(A,B)

ans =

0.9608

para 2imagenes iguales pero a color;
>> [c,d]=uigetfile({'*.jpg';'*.png';'*.bmp'});
>> t=imread([d,c]);
>> imshow(t)
>> corr2(t,t)
??? Error using ==> mtimes
Input arguments must be 2-D.

Error in ==> corr2 at 26
r = sum(sum(a.*b))/sqrt(sum(sum(a.*a))*sum(sum(b.*b)));

pero para dos imagenes iguales en escala gris resulta

>> g=rgb2gray(t);
>> corr2(g,g)

ans =

1
es logico ya que son iguales
y para dos imagenes en gris pero diferentes de la forma
>> g=rgb2gray(t);
>> g1=0.5.*g;
>> corr2(g,g1)

ans =

0.9999
y aun asi me vota valores.


porque cuando comparo imagenes a color me vota error incluso cuando son imagenes iguales....?
alguna recomendacion
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

imagenescomparando

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/10/2011 15:29:12
hola alexanchz
¿la funcion uigetfile({'*.jpg';'*.png';'*.bmp'}); sirve para leer un archivo desde la pc o sirve para guardar un archivo a la pc?
digita help uigetfile
y averigua ese punto. Al parecer estas utilizando mal los comandos. Cada comandos que utilices tienes que saber exactamente para q sirve. No solo es poner comandos.
Ademas indaga mas sobre este punto, busca archivos pdf sobre ese punto y lee.

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
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

imagenescomparando

Publicado por alexanchez (9 intervenciones) el 08/10/2011 01:53:06
ok....
eh estado viendo uigetfile
si mi imagen atratar esta en mi pwd me la trabaja normal sin necesidad de usar el imread..
pero si cargo una imagen con el uigetfile de una carpeta que no es mi pwd cuando quiero trabajr con esa imagen,, no me la reconoce cuando quiero trabajarla...
al parecer devuelve el nombre y la ruta del archivo seleccionado en el cuadro de diálogo.
y aun sigo viendo sus aplicaciones gracias por el consejo
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
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

imagenescomparando

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/10/2011 02:10:03
hola
digita en la ventana de comandos de matlab
>> help uigetfile
luego entra a doc uigetfile q esta subrayado
y tendras mayor vision de que es lo q hace ese comando.

JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
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

imagenescomparando

Publicado por geral (104 intervenciones) el 04/11/2011 19:15:59
seguramente la dimensión del arreglo que obtuviste con el imread es de m-x-n-x-3 y por eso el corr2 no te funciona, nose que podria ser... yo tambien estoy buscando como comparar imágenes y aun tengo esa duda en especial con imágenes RGB.
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

imagenescomparando

Publicado por MARCELO (1 intervención) el 09/10/2012 17:03:25
bueno yo lo que hice fue calcular la correlacion en los tres planos RGB por separado y luego sacar el promedio de estas tres mediciones...
IM1=imread('myfile1.jpg');
IM2=imread('myfile2.jpg');

R1 = corr2(IM1(:,:,1),IM2(:,:,1));
R2 = corr2(IM1(:,:,2),IM2(:,:,2));
R3 = corr2(IM1(:,:,3),IM2(:,:,3));
R4=(R1+R2+R3)/3;
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