jueves, 3 de noviembre de 2016

Referencia Matlab, Matlab Quick Referece, Matlab Reference

Referencia Matlab, Matlab Quick Referece, Matlab Reference





Ufff, siii otro listado de funciones, de los miles y miles que hay. Este es un pequeño listado de funciones bastante útiles y algunos ejemplos sobre el uso del Matlab y procesamiento de imágenes.Para descargar en formato pdf; https://github.com/freelanceparaguay/matlabExamples/tree/master/MatlabReference
Hay miles de guías, interminable cantidad de materiales, esta la hice en base a mis necesidades durante trabajos de procesamiento digital de imágenes.




1 Configuración de entorno

Sentencia

Ejemplo

clc

Borrar comandos en consola.

clear all

Limpiar valores en
memoria.

close all

Cerrar ventanas
abiertas.

2 Entradas y salidas

Sentencia

Ejemplo

fprintf

Impresión en pantalla con formato

ti=2.56;

paso=0.5;

va=0;

vi=0;

vti=0;

fprintf('ti=%.2i seg ti+paso=%.2f seg va=%.2i km/seg
vi= %.2f km/seg vti= %.2f km/seg \n',ti,ti+paso,va,vi,vti);

disp

Impresión en pantalla de cualquier tipo de datos

Vti=0.9;

disp(vti);
%muestra valor solo

disp('mensaje'); %muestra
mensaje

input

Ingreso por
teclado

M=input('Mensaje
entrada1->');

B=input('Mensaje entrada2
->');

disp(M);

disp(B);

3 Control del flujo y variables

Sentencia

Ejemplo

if ...
end

ti=2;

if ti==2

fprintf('Igual a dos');

else

fprintf('No es igual a dos');

end

ti=2; vi=0;

if (ti==2
& vi==0)

fprintf('ti=2 y vi=0
\n');

else

fprint('no cumple \n');

end

Existe
variable

switch ..
end

valor=input('Mensaje
entrada1->');

switch valor

case 1

disp('Valor
-> 1.');

case 2

disp('Valor -> 2.');

case 3

disp('Valor
-> 3.');

otherwise

disp('Otros valores .');

end

while ..
end

Ti=0;

paso=0,5;

tiempoFinal=10;

while
ti < tiempoFinal

fprintf('t= %.2f
paso=%.2f \n',ti,paso);

ti=ti+paso;

end

for ...
end

for ti=0:tiempoFinal

fprintf('t= %.2f \n',ti);

end

4 Funciones y procedimientos

Sentencia

Ejemplo

function
... end

Función en archivo .m

function [ salida1 salida2 ] =
untitled2( entrada1, entrada2 )

fprintf('entrada1= %.2f \n entrada2=%.2f \',entrada1, entrada2);

salida1=10;

salida2=20

end

Llamar desde la linea de comandos como

[a,b]=ejemplofuncion(1,2);

Los parámetros se
devuelven a las variables encerradas entre corchetes.

@

Función en línea dentro de un
script

%definición de función en línea

InterpolacionLinealGrado1 = @ (x0,fx0,x1,fx1,x)
(fx0+((fx1-fx0)/(x1-x0))*(x-x0));

%llamado a función en línea

valorGrado1=InterpolacionLinealGrado1(1,3,5,99,4);

5 Matrices y vectores

Sentencia

Ejemplo

X=[1:10];

Definición y acceso a un vector

X=[1:10];

X(indice);

M(fila,
columna);

Definición y acceso a una matriz

M=[1, 2, 3; 4, 5, 6; 7, 8, 9]

M(fila, columna);

size()

Tamaño de una matriz

[filas,columnas]=size(X);

zeros()

Inicializar con ceros

matriz=zeros(n,n);

Recorrer y mostrar una
matriz

X=[1, 2, 3; 4, 5, 6; 7, 8, 9]

[n,m]=size(X);

for i=1:1:n

for
j=1:1:(m)

fprintf('%.2f ',X(i,j));

end

fprintf('\n');

end

cat(1,A,I)

Concatenar matrices

A=[1 2 3;4 5 6]

I=[1 2
3;4 5 6]

cat(2,A,I) %concatenar columnas

cat(1,A,I) % concatenar filas

A'

Transpuesta de una matriz

A=[1 2 3;4
5 6]

A'

det(A)

Determinante

A=[1 2 3;4 5 6; 7 8
9
]

determinante=det(A)

6 Ploteado de funciones

Sentencia

Ejemplo

7 Procesamiento digital de imágenes

Sentencia

Ejemplo

Abrir imagen

Iorig=imread('imagen.jpg');

imshow(Iorig);

Mostrar
imagen

Iorig=imread('imagen.jpg');

figure;
imshow(Iorig);

Guardar imagen

Iorig=imread('imagen.jpg');

imwrite(Iorig,'prueba.jpg','jpg')

Acceder a la matriz de la imagen.

size(originalImage)

Tamaño de imagen, ancho y alto

Iorig=imread('imagen.jpg');

[rows,
columns, numberOfColorBands]= size(Iorig);

im2bw(Iorig,nivel

Binarizar imagen.

1=
BLANCO.

0=NEGRO.

Iorig=imread('imagen.jpg');

nivel = graythresh(Iorig); %umbral de nivel de
gris

IB2=im2bw(Iorig,nivel);

figure;imshow(IB2); %mostrar

strel('disk', 3)

Definición de elementos
estructurantes

SE = strel('disk', 3); %disco
con radio 3 pixeles

SE =
strel('diamond', 5); %disco con radio 5 pixeles

SE = strel('line', 3, 0); %línea 3 pixeles, 0 grados

% otros: ball, octagon,
square

imerode(IB2,SE)

Erosión

SE = strel('disk', 3);

IB4 = imerode(IB2,SE);

figure;imshow(IB4);

imdilate(IB2,SE)

Dilatación

SE = strel('disk', 3);

IB4 = imdilate(IB2,SE);

figure;imshow(IB4);

imclose(IB5,SE)

Apertura

SE =
strel('disk', 3);

IB7=imclose(IB5,SE);

imclose(IB5,SE)

Cerradura

SE =
strel('disk', 3);

IB7=imclose(IB5,SE);

Invertir
imagen binaria

Iorig=imread('imagen.jpg');

IB1=im2bw(Iorig,nivel);

IB2=1-IB1;

figure; imshow(IB1);

figure; imshow(IB2);

bitxor(IB7,IB10)

XOR de
imágenes

Iorig1=imread('imagen.jpg');

Iorig2=imread('imagen.jpg');

IB1=im2bw(Iorig1,nivel);

IB2=im2bw(Iorig2,nivel);

IB3=bitxor(IB1,IB2);

figure;
imshow(IB1);

figure; imshow(IB2);

figure; imshow(IB3);

bitor(IB1,IB2)

OR de imágenes

Iorig1=imread('imagen.jpg');

Iorig2=imread('imagen.jpg');

IB1=im2bw(Iorig1,nivel);

IB2=im2bw(Iorig2,nivel);

IB8=bitor(IB1,IB2);

figure;
imshow(IB1);

figure; imshow(IB2);

rgb2gray(Iorig)

Convertir de RGB a grises

Iorig=imread('imagen.jpg');

IG=rgb2gray(Iorig);

edge(IG,'prewitt')

Filtro
Sobel, realce de bordes

Iorig=imread('imagen.jpg');

IG=rgb2gray(Iorig);

Iedges=edge(IG,'prewitt'); %puede
definirse el umbral de gris

figure;imshow(Iedges)

rgb2gray(Iorig)

Filtro Laplaciano,
realce de bordes

Iorig=imread('imagen.jpg');

IG=rgb2gray(Iorig);

Iedges=edge(IG,'log'); %puede definirse el umbral de gris

figure;imshow(Iedges)

edge(IG,'prewitt')

Filtro Prewwit, realce de bordes

Iorig=imread('imagen.jpg');

IG=rgb2gray(Iorig);

Iedges=edge(IG,'prewitt'); %puede definirse el
umbral de gris

figure;imshow(Iedges)

fspecial('average')

Filtro de la media

Iorig=imread('imagen.jpg');

IB1 = im2bw(Iorig);

f=fspecial('average');

IB2=filter2(f,IB1);

imfill(IB1,'holes')

Llenado de agujeros

Iorig=imread('imagen.jpg');

IB1 = im2bw(Iorig);

IB2 = imfill(IB1,'holes');

imshow(BW4),
figure, imshow(BW5)

regionprops(IB1,'Area')

Cálculo de
áreas

area=regionprops(IB1,'Area')

fprintf('Area= %.2i;
area.Area);

regionprops(IB1,'Perimeter')

Cálculo de
perímetro

perimetro=regionprops(IB1,'Perimeter')

fprintf('Perimetro= %.2f \n',
perimetro.Perimeter);

regionprops(IB1,'Eccentricity')

Cálculo de
excentricidad

excentricidad=regionprops(IB1,'Eccentricity')

fprintf('Excentricidad= %.4f \n', excentricidad.Eccentricity);

regionprops(IB1,'centroid')

Cálculo de centroide

centroides=regionprops(IB1,'centroid')

fprintf('X %.2f; Y %.2f\n', centroides(:,1), centroides(:,2));

subplot(2,2,1)

Mostrar matriz de imágenes

subplot(2,2,1);imshow(Iorig);

subplot(2,2,2);imshow(IB12);

subplot(2,2,3);imshow(Iorig);

subplot(2,2,4);imshow(IB2);

8 Historial de cambios

Fecha

Versión

Descripción

Autor

03/11/2016

0,1

Creación y redacción del documento

http://otroblogdetecnologias.blogspot.com

No hay comentarios:

Publicar un comentario