quarta-feira, 30 de janeiro de 2013

Análise de Cristal Líquido

Cristal Líquido 1


Fases: 
Isotrópica Reentrante (13,8℃) Discótica (18,63℃) Biaxial (20,7℃) Calamitica (40,5℃) Isotrópica

Obs1: Aquecendo taxa térmica lenta.
Obs2: (T)  Temperatura de transição real.

Resultados:
Área
Derivada
 
 Possíveis transições encontradas automaticamente:
13.55℃ , 15.15℃, 18.45℃, 20.85℃, 39.35℃ e 39.75℃.

segunda-feira, 5 de dezembro de 2011

Área do Lago do Parque do Ingá (Maringá) - Monte Carlo

Como podemos usar um monte de pequenas pedras para calcular a área de um lago?
Primeiramente devemos ter uma área A conhecida onde o lago está inserido (A = 300m x 500m = 150000 m*m):
Agora, jogamos N pedras aleatoriamente de tal forma que estas pedras caiam dentro da área A. Então, temos um número n de pedras que caem dentro do lago.
Assim, temos uma relação Área do lago = A*n/N.

Após jogarmos mil pedras (N = 1000), notamos que 354 pedras cairam dentro do lago ( n = 354):

Utilizando a relação, temos que a área do lago é: Área do lago = 150000*354/1000 = 53100 m*m.

O método estatístico utilizado para calcular a área do lago, é conhecido como Método de Monte Carlo. Quanto maior o número de pedras lançadas, melhor será a precisão da sua resposta. Para N muito grande, temos que a área do lago do parque do Ingá é igual à 55322 m*m.

A imagem do lago foi retirado do Google Map. O programa desenvolvido para simular as pedras foi escrito na linguagem C utilizando a biblioteca SDL para trabalhar com a imagem.

Algoritmos de Preenchimento

domingo, 4 de dezembro de 2011

Area Open

No área open, é aplicado uma abertura somente às regiões planas ontem tem a área maior que um valor determinado.
Imagem original:

Image aplicada abertura somente para áreas maiores que 250px:
Algoritmo:
a = imread('ao.gif');
e = imread('e.png');
tomMax = max(max(a));
novo = a-a;
parametro = 250;
for j=1:tomMax,
imagem = logical(a==j);
[label, tamanho] = bwlabel(imagem,8);
novo2 = imagem-imagem;
for i = 1:tamanho,
aux = logical(label == i);
soma = sum(sum(aux));
if (soma >parametro),
novo2 = novo2+aux;
end
end
novo2 = uint8(novo2>0);
novo2 = imopen(novo2,e);
novo = max(novo, (novo2*j));
end;

Inf-Reconstrução




A inf-reconstrução, consiste em reconstruir um blob a partir de um marcador.
Aplicamos várias iterações das operações: intersecção da imagem original com o marcador dilatado.
O termo inf é utilizado porque paramos as iterações quando a nova imagem gerada não é alterada em comparação com a imagem da iteração anterior.

Imagem original:


Marcador:


Blog reconstruído:
Algoritmo:
A = imread('a.gif');
B = imread('b.gif');
E = imread('e.png');
Bnovo = min(imdilate(B,E),A);
while sum(sum(Bnovo))!=sum(sum(B))
___B = Bnovo;
___Bnovo = min(imdilate(B,E),A);
end;

Granulometría

Para calcular a granulometría, aumentamos o elemento estruturante em uma unidade a cada iteração e aplicamos uma operação de abertura à imagem original. Paramos as iterações quando for elimitados todos os pixeis brancos da imagem. Ou seja, a soma de pixeis brancos são iguais a zero.

Imagem a ser aplicado granulometria:
O elemento estruturante começa com uma matriz E = [1] de dimensões (1x1). A cada iteração é aumentado a matriz em uma dimensão na linha e na coluna.

O gráfico abaixo apresenta quantos pixeis brancos foram removidos, a cada iteração, em relação ao número total de pixeis brancos da imagem original:
O gráfico abaixo apresenta quantos pixeis brancos foram eliminados em relação a quantos pixeis brancos tinham na iteração anterior.
Algoritmo:
d = 1;
E = ones(d,d);
A = imread('barbara.png');
elim1 = [];
elim2 = [];
total = num = sum(sum(A));
while num!=0
____A = imopen(A,E);
____num_novo = sum(sum(A));
____elim1 = [elim1, total-num_novo];
____elim2 = [elim2, num - num_novo];
____num = num_novo;
____d = d + 1;
____E = ones(d,d);
end;

Fechamento - Propriedades

Algoritmo:
A = imread('a.png');
A == imclose(A,[1]);

Resposta:
ans = 1;


Algoritmo:
A = imread('a.png');
B = imread('b.png');
E = imread('e.png');
AfE = imclose(A,E);
BfE = imclose(B,E);
imshow(AfE);
imshow(BfE);


Algoritmo:
A = imread('a.png');
E = imread('e.png');
AfE = imclose(A,E);
imshow(AfE);


Algoritmo:
A = imread('a.png');
E = imread('e.png');
AfE = imclose(A,E);
AfEfE = imclose(AfE,E);
AfE == AfEfE

Resposta:
ans = 1;


Algoritmo:
A = imread('a.png');
E = imread('e.png);
AfE = imclose(A,E);
AfE == not(imopen(not(A),E'));

Resposta:
ans = 1;