Tuesday, June 9, 2009

Histograma por un escalar Ejemplo B

clear all;
clc;

I1=imread('im2.jpg');

[m,n]=size(I1);
a= min(min(I1));
b= max(max(I1));

maxi=1;

for i=2:m-1
for j=2:n-1

if (I1(i,j)>maxi)
maxi=I1(i,j);

end
r1=maxi;
end
end

res=(a+b)/r1;

clc;
I1=I1/res;

imshow(I1);

Histograma por un escalar Ejemplo A

clear all;
clc;

I1=imread('im2.jpg');

[m,n]=size(I1);
a= min(min(I1));
b= max(max(I1));

maxi=1;

for i=2:m-1
for j=2:n-1

if (I1(i,j)>maxi)
maxi=I1(i,j);

end
r1=maxi;
end
end

res=(a+b)/r1;

clc;
I1=I1*res;

imshow(I1);







clear all;
clc
***************************************************
LECTURA DE IMAGENES
**************************************************
I1=imread('detec1.jpg');
I2=imread('detec2.jpg')
[m,n]=size(I1)
***************************************************
UMBRALIZACION IMAGEN 1
**************************************************
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)>
UMBRALIZACION IMAGEN 2
**************************************************
[m,n]=size(I2)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)>
I1(i,j)=0;
else I2(i,j)=255;
end
end
end
***************************************************
RESTA DE MATRIZ 1 Y 2
**************************************************
imshow(abs(I2-I1));

Wednesday, June 3, 2009

humbralizacion - deteccion de esquina

clear all;
clc
I1=imread('im1.jpg');

[m,n]=size(I1)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I1(i,j)=255;
end

end
end
V=double(zeros(2,4));
i=1;
j=1;
for i=10:m-1
for j=10:n-1
if (I1(i,j)==255)
V(1,1)=i;
V(1,2)=j;

end

end
end
i=1;
j=1;
for i=m-1:2
for j=n-1:2
if (I1(i,j)==255)
V(2,1)=i;
V(2,2)=j;

end

end
end
i=1;
j=1;
for j=n-1:2
for i=m-1:2
if (I1(i,j)==255)
V(3,1)=i;
V(3,2)=j;

end

end
end
i=1;
j=1;
for j=2:n-1
for i=2:m-1
if (I1(i,j)==255)
V(4,1)=i;
V(4,2)=j;

end

end
end
imshow(I1);

detección de movimiento

clear all;
clc
I1=imread('detect1.bmp');
I2=imread('detect2.bmp')
[m,n]=size(I1)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I1(i,j)=255;
end

end
end
[m,n]=size(I2)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I2(i,j)=255;
end

end
end
imshow(abs(I2-I1));
clear all;
clc
I1=imread('im1.jpg');
[m,n]=size(I1)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I1(i,j)=255;
end
end
end
imshow (I1);

codigo mathlab humbral + detección de esquina

clear all;
clc
I1=imread('im1.jpg');

[m,n]=size(I1)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I1(i,j)=255;
end

end
end
V=double(zeros(2,4));
i=1;
j=1;
for i=10:m-1
for j=10:n-1
if (I1(i,j)==255)
V(1,1)=i;
V(1,2)=j;

end

end
end
i=1;
j=1;
for i=m-1:2
for j=n-1:2
if (I1(i,j)==255)
V(2,1)=i;
V(2,2)=j;

end

end
end
i=1;
j=1;
for j=n-1:2
for i=m-1:2
if (I1(i,j)==255)
V(3,1)=i;
V(3,2)=j;

end

end
end
i=1;
j=1;
for j=2:n-1
for i=2:m-1
if (I1(i,j)==255)
V(4,1)=i;
V(4,2)=j;

end

end
end
imshow(I1);

Codigo Mathlab Detección moviemineto

clear all;
clc
I1=imread('detect1.bmp');
I2=imread('detect2.bmp')
[m,n]=size(I1)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I1(i,j)=255;
end

end
end
[m,n]=size(I2)
for i=2:m-1
for j=2:n-1
if (I1(i,j)<80)
I1(i,j)=0;
else I2(i,j)=255;
end

end
end
imshow(abs(I2-I1));

Tuesday, May 26, 2009

umbralizacion

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;

public class ejemplo1 implements PlugInFilter
{
ImagePlus imp;

public int setup(String arg, ImagePlus imp)
{
this.imp = imp;
return DOES_ALL;
}

public void run(ImageProcessor ip)
{

int a=ip.getWidth();
int b=ip.getHeight();
for(int i=0;i
{
for(int j=0;j
{
int m=ip.getPixel(i,j);
if(p<50)
{
m=0;
}
if(p>50)
{
m=255;
}
im.putPixel(i,j,255-p);
}

}
}

}

Wednesday, May 6, 2009

Filtro de la mediana offline

clear;
V=uint8(zeros(9,1));
A=imread('auto.jpg');
[m,n]= size(A);
B=uint8(zeros(m,n));
for i=2:m-1;
for j=2:n-1
V=[A(i-1, j-1),A(i-1, j),A(i-1, j+1),A(i, j-1),A(i, j),A(i, j+1),A(i+1, j-1),A(i+1, j),A(i+1, j+1)];
C=sum(V);
B(i,j)=uint8(C/9);
end
end;
A(2:m-1,2:n-1)=B(2:m-1,2:n-1);
imshow(A);

Imagenes con el algoritmo corregio

Imagenes filtro mediana online

Imagen sin filtrar


Imagen filtrada
V=unit8(zeros(9,1));

I1=imgread('im1.jpg');

I2=uint8(Zeros(m,n));

[m,n]=size(I1)

for i=2:m-1;

forj=2:n-1;

V=[I1(i-1,j-1),I1(i-1,j),I1(i-1,j+1),I1(i,j-1),I1(i,j),I1(i,j+1),I1(i+1,j-1),I1(i+1,j),I1(i+1,j+1)]/9;

V=sort(V);

I2(i,j)=V;

end;

end;

I1(2:m-1;1:n-1)=I2(2:m-1;2:n-1);

imageshow(I1);

Filtro de la Mediana online (Math Lab)

V=uint8(zeros(9,1));
I1=imread('im1.jpg');
[m,n]=size(I1);
for i=2:m-1;
for j=2:n-1
V=uint8(I1(i-1,j-1)+I1(i-1,j)+I1(i-1,j+1)+I1(i,j-1)+I1(i,j)+I1(i,j+1)+I1(i+1,j-1)+I1(i+1,j)+I1(i+1,j+1));
I1(i,j)=V/9;
end
end
imshow(I1);

Tuesday, May 5, 2009

ejemplo de paso de fitro online




La imagen superior esta corregida con un filtro online la inferior es la original como se puede ver en la parte superior en la mitad la linea negra se borra

Wednesday, April 29, 2009

Media Online leyendo una imagen escala de grises

A=imread('auto.jpg');
B=uint8(zeros(9,1));
[m,n]= size(A);
for i=2:m-1
for j=2:n-1
B=[A(i-1, j-1),A(i-1, j),A(i-1, j+1),A(i, j-1),A(i, j),A(i, j+1),A(i+1, j-1),A(i+1, j),A(i+1, j+1)];
B = sort(B);
A(i,j)= B(5);
end
end ;
imshow(A);

codigo filtro media ofline

SHUNSHITO SE PUBLICA EL LA ENTRADA JIJI ATT. PAUL BRITO

V=unit8(zeros(9,1));
I1=imgread('im1.jpg');
I2=uint8(Zeros(m,n));
[m,n]=size(I1)
for i=2:m-1;
forj=2:n-1;
V=[I1(i-1,j-1),I1(i-1,j),I1(i-1,j+1),I1(i,j-1),I1(i,j),I1(i,j+1),I1(i+1,j-1),I1(i+1,j),I1(i+1,j+1)];
V=sort(V);
I2(i,j)=V[5];
end;
end;
I1(2:m-1;1:n-1)=I2(2:m-1;2:n-1);
imageshow(I1);

Mediana

P=[25,25,25,25,25;25,35,45,128,25;25,45,35,35,25;25,45,35,35,25;25,25,25,25,25]
A=P;
n=5;
for i = 2:n-1,
for j = 2:n-1,
A(i,j)=(A(i-1,j-1)+A(i-1,j)+A(i-1,j+1)+A(i,j-1)+A(i,j)+A(i,j+1)+A(i+1,j-1)+A(i+1,j)+A(i+1,j+1))/9;
end;
end

Filtro mediana Matlab online

Filtro de la Mediana online (Math Lab)

V=uint8(zeros(9,1));
I1=imread('im1.jpg');
[m,n]=size(I1);
for i=2:m-1;
for j=2:n-1
V=uint8(I1(i-1,j-1)+I1(i-1,j)+I1(i-1,j+1)+I1(i,j-1)+I1(i,j)+I1(i,j+1)+I1(i+1,j-1)+I1(i+1,j)+I1(i+1,j+1));
I1(i,j)=V/9;
end
end
imshow(I1);

Wednesday, April 22, 2009

Codigo para un histograma en matlab

******************************************************************************
Codigo para la creacion de un histograma de una matriz de mxn
******************************************************************************
clear;
k=1;
cont=0;
temp=0;
max=0;

fil=input('ingrese filas: ') ;
col=input ('ingrese columnas: ') ;

for i=1:fil
for j=1:col
A(i,j)=input('valor: ');
B(k)=A(i,j); k=k+1;
end
end ;

B = ( sort(B) )


for m=1:length(B)
for n=1:length(B)
if(B(m)== B(n))
cont=cont+1;
end
end
C(m)=cont;
cont=0;
end;

disp(C);
******************************************************************************

Codigo para la creacion de un histograma de una matriz de mxn
******************************************************************************

clear;

k=1;

cont=0;

temp=0;

max=0;


fil=input('ingrese filas: ') ;

col=input ('ingrese columnas: ') ;


for i=1:fil

for j=1:col
A(i,j)=input('valor: ');

B(k)=A(i,j); k=k+1;

end

end ;

B = ( sort(B) )

for i=1:k-1


temp=B(i);


if (temp>max)

max=temp;

end

end ;


for m=1:length(B)

for n=1:length(B)

if(B(m)== B(n))

cont=cont+1;

end

end C(m)=cont; cont=0; end; disp(cont); disp(C);

Histograma

/*
* To change this template, choose Tools Templates
* and open the template in the editor.
*/

package simu;

/**
*
* @author Administrador
*/
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;

public class histograma implements PlugInFilter {
ImagePlus imp;

public int setup(String arg, ImagePlus imp) {
this.imp = imp;
return DOES_ALL;
}

public void run(ImageProcessor ip) {
//ip.invert();
//imp.updateAndDraw();
//IJ.wait(500);
//ip.invert();
//imp.updateAndDraw();
int w = ip.getWidth();


int h = ip.getHeight();
int num[]= new int[256] ;


for (int i=0; i<255; i="0;"> for (int j=0; j int p= ip.getPixel(i, j);
num[p]++;
}
}
for (int i=0; i for (int j=0; j
ip.putPixel(255, i, j);
}
}
for (int i=0; i<256;>

Inversor

package simu;

/**
*
* @author Administrador
*/
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;
public class i_filtro {


public class Filter_Plugin implements PlugInFilter {
ImagePlus imp;

public int setup(String arg, ImagePlus imp) {
this.imp = imp;
return DOES_ALL;
}

public void run(ImageProcessor ip) {
//ip.invert();
//imp.updateAndDraw();
//IJ.wait(500);
//ip.invert();
//imp.updateAndDraw();
int w = ip.getWidth();


int h = ip.getHeight();
for (int i=0; i
for (int j=0; j
int p= ip.getPixel(i, j);
ip.putPixel(i, j, 255-p);
}
}
}

}

}

Histogramas de una imagen a color

Histogramas de una imagen a color

Un histograma, en el caso de una imagen en escala de 256 tonalidades del blanco al negro, se realiza fácilmente con la ayuda de la informática; en primer lugar crearemos un vector (array) que contenga 256 posiciones, una por cada nivel de gris, el algoritmo recorrerá cada uno de los pixeles de la imagen, aumentando en una unidad el valor guardado en la posición del array correspondiente al tono del pixel



El histograma proporciona una descripción de la apariencia global de una imagen.


Si los niveles de gris están concentrados hacia el extremo oscuro del rango de la escala de gris, la apariencia global de la imagen será oscura y si sucede justo lo contrario, la imagen correspondiente será brillante.

Si aparecen tres histogramas, de forma que el tratamiento de imágenes en color se complica por la aparición de nuevos componentes. El histograma no contiene los tonos del negro al blanco, sino del negro al color correspondiente (rojo, verde ó azul -RGB-).



Esto da lugar a un conjunto de técnicas de procesado que básicamente podemos dividir en dos grupos: ecualización y especificación de histograma. Ambas técnicas se basan en la aplicación de una determinada función (T) a los niveles de gris de la imagen original (r) para obtener los niveles de gris de la imagen transformada (s): s=T(r)

• T(r) es de valor único y monótonamente creciente en el intervalo 0≤r≤1 (de forma que se preserve el orden entre blanco y negro de la escala de grises)
• 0≤T(r)≤1 para 0≤r≤1 (de manera que se garantice que la aplicación es coherente con el rango de valores de pixel permitidos)

El histograma de una imagen da una idea de la probabilidad de que aparezca cada nivel de gris disponible en la misma, podríamos decir, por tanto, que correspondería a la función densidad de probabilidad de dichos niveles de gris.

Consideramos los niveles de gris como cantidades continuas (no discretas como realmente son).

Saturday, April 18, 2009

Matlab

Matlab (matrix laboratory) es una IDE (Integrated Development Environment) que permite programar en lenguaje M , este software fue creado por The MathWorks en el año de 1984, que permite programación con matrices, puesto que su dato basico son matrices, es especialmente popular para el desarrollo de aplicaciones en el hambito matemático.

PAUL BRITO
El uso de MAtlab para nuestro caso servirá para el tratamiento de imagenes, para el caso descrito MAtlab trata una imagen como un conjunto de pixeles que pueden ser representados en una matriz de m x n.

Friday, April 17, 2009

Inicio

Primer post creación del blog