
problema tratamiento imágenes
Publicado por Kroxy (1 intervención) el 02/01/2013 10:13:24
Hola, soy nuevo aquí :)
Soy muy novato en matlab y tengo un problema, a ver si me puede alguien ayudar. Es sobre tratamiento de imágenes.
Tengo dos programas, el primero lo que hace es sacar el canal rojo del RGB de dos imagenes, restarlas y así obtener la imagen correspondiente.
El segundo lo que hace es contar el número de píxeles de color rojo que tiene la imagen en el rango del rgb (0-255)
El problema es que cuando inserto el segundo programa en el primero no funciona correctamente, el conteo de pixeles lo hace mal.
El primer programa es este:
El segundo:
No logro poner el segundo dentro del primero y que me lo haga correctamente.
Alguna ayuda?
Muchas gracias
Soy muy novato en matlab y tengo un problema, a ver si me puede alguien ayudar. Es sobre tratamiento de imágenes.
Tengo dos programas, el primero lo que hace es sacar el canal rojo del RGB de dos imagenes, restarlas y así obtener la imagen correspondiente.
El segundo lo que hace es contar el número de píxeles de color rojo que tiene la imagen en el rango del rgb (0-255)
El problema es que cuando inserto el segundo programa en el primero no funciona correctamente, el conteo de pixeles lo hace mal.
El primer programa es este:
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
26
27
28
29
30
31
32
33
34
ZoneY=(1125:1536);
ZoneX=(680:1530);
disp('Select blank file?') %Seleccion de ficheros blanco e imagen
blankFile=uigetfile('.jpg')
blank=imread(blankFile); % coge imagen
blank=double(blank); %cambio formato imagen
blankLayer=blank(:,:,1); %Selecciono la capa 1
disp(['Select image file/s?'])
sampleFile=uigetfile('.jpg','Multiselect','on')
sampleFile=char(sampleFile);
sampleFile=strvcat(sampleFile);
number=size(sampleFile);
for i=1:number(1)
sample=imread(sampleFile(i,:)); % coge imagen
sample=double(sample);
sampleLayer=sample(:,:,1);
sampleMatrix(:,:,i)=sampleLayer;
blankMatrix(:,:,i)=blankLayer;
end
sampleMatrix=sampleMatrix(ZoneY,ZoneX,:); % eligiendo zona
blankMatrix=blankMatrix(ZoneY,ZoneX,:); % eligiendo zona
subRow=round(sqrt(number(1)))
subCol=round(number(1)/subRow)+1
for i=1:number(1)
final(:,:,i)=blankMatrix(:,:,i)-sampleMatrix(:,:,i);
subplot(subRow,subCol,i)
image(final(:,:,i))
end
El segundo:
1
2
3
4
5
6
7
8
9
rgbImage = imread('muestra.png');
subplot(2, 2, 1);
imshow(rgbImage, []);
redPlane = rgbImage(:, :, 1);
[pixelCountR] = imhist(redPlane);
subplot(2, 2, 2);
bar(pixelCountR, 'r');
No logro poner el segundo dentro del primero y que me lo haga correctamente.
Alguna ayuda?
Muchas gracias
Valora esta pregunta


0