Hi David, I read your comment.
I didn't understand what you'd like to say.
I have another blog about Scilab, and I made some posts about convolution (here).
I wrote something about the convolotion's properties there, I think you'll be satisfied.
If you need any help more, I can try to do it.
Ok, that's all.
God bless you, my friend.
segunda-feira, 26 de outubro de 2009
Convolution - Scilab
quarta-feira, 21 de outubro de 2009
Interaction
Nos dias 26, 27 e 28 de novembro irá acontecer o Interaction South-America em São Paulo - SP.
Site do evento: http://www.interaction-southamerica.org/?lang=pt
Pois bem, esta é a primeira edição de um evento internacional que contará com presenças importantes de vários locais do mundo.
Seguem alguns dos palestrantes confirmados e os temas de suas apresentações:
Nimish Biloria – [TU Delft]
Professor assistente, Corpo docente de Arquitetura, TU Delft, O Países Baixos Título: Morfologias arquitetônicas Resumo: O foco de conferência no recente trabalho em explorar assuntos como o desejo compulsivo para especular sobre oportunidades arquitetônicas na presença de assunto animado, entidades orgânicas e a presença geométrica e matemática estando por baixo de delas e como esta pesquisa está estruturada por uma variedade múltipla de fontes que alcançam de ficção científica e Moda até Biologia e Botânica.Simon Biggs
Professor de Pesquisa na Faculdade de Arte em Edimburgo, REINO UNIDO Título: Transculturação, Transliteração e poesia generativa Resumo: Que efeito estão tendo recentes desenvolvimentos em comunicações globais em idioma e seus leitores e escritores; esses definiram pelas relações deles com idioma? O que acontece a nossa identidade, como seres lingüísticos, quando nosso meio de comunicação e troca de associação demográfica ? O que está dirigindo isto? É a tecnologia, as migrações das pessoas ou uma mistura destes fatores? Como estas são dinâmicamente refletida, dentro e em práticas criativas contemporâneas com idioma e novas mídia?Juliana Ferreira – [Nokia Design - Londres]
Juliana Ferreira começou sua carreira aos 18 anos, se formando como Design Gráfico pela Univercidade, no Rio de Janeiro, iniciando sua jornada do impresso ao webdesign, criando aplicações e serviços on-line. Sete anos depois, se mudou para Londres onde adquiriu titulo de Mestre em Design de Interação pela Westminster University e já passou por grandes empresas como BT, Citi bank e BBC. Nos últimos três anos tem atuado como especialista em Desing de Interação na Nokia Design, criando conceitos de estratégia de design para user interface e serviços Nokia, Titulo da Palestra: Your Personal Device: Homescreens e personalização Resumo: Conheça sobre o processo de design utilizado pela Nokia Design envolvendo pesquisadores, designers e desenvolvedores para descobrir as tendências futuras no consumo e serviços, e como as pessoas estão exigindo cada vez mais controle sobre essa expêriencia.Você também terá a oportunidade de ver outros projetos de projeto de interfaces inovadoras da Nokia Design.
Robson Santos – [Instituto Nokia de Tecnologia (InDT)]
Robson Santos, D.Sc. Pesquisador sênior em usabilidade do Instituto Nokia de Tecnologia; Primeiro a obter o título de Doutor em Design no continente, pela PUC-Rio, possui larga experiência prática e extenso currículo docente em cursos de pós-graduação, de graduação e de extensão. Título: Coleta e análise de dados em testes de usabilidade Resumo: A usabilidade é um importante elemento para criar uma boa experiência do usuário. Para se obter dados sobre o uso de produtos e serviços digitais é importante conhecer as técnicas para coleta de dados qualitativos e quantitativos. Não menos importante é possuir bom repertório analítico que permita extrair informações relevantes a partir dos dados coletados. O workshop visa oferecer oportunidade para que os participantes experimentem métodos e técnicas para coleta (entrevistas,questionários, registros em vídeo) e análise de dados (verbalizações, expressões faciais). A metodologia será participativa, de maneira que os presentes possam exercitar as técnicas apresentadas.Phil Ohme & Eric Pan – [Intuit]
Phil Ohme faz parte do time de design de interação da Intuit (os fabricantes do QuickBooks, Quicken, TurboTax) e tem atuado no campo de experiência do usuário a mais de 12 anos. Ele já trabalhou para empresas como a HP e a Ford Motor Co., onde ganhou o Choice 2000 Popular Mechanics Editor’s Choice Award: Best in Show, para o projeto da primeira fábrica instaladara de mp3 player para automóveis. Phil é graduado em Engenharia Industrial do Rochester Institute of Technology (RIT) com Mestrado em Engenharia Industrial – Fatores Humanos pela Universidade de Iowa.Eric Pan é, atualmente, designer de interação sênior da empresa de software Intuit, sediada em San Diego, Califórnia, E.U.A.. Sua experiência inclui o trabalho em outras empresas iniciantes do Vale do Silício, consultoria e pesquisa acadêmica. Eric graduado da Universidade da Califórnia, San Diego em Ciência Cognitiva com especialização em Interação Humano-Computador
Titulo do Workshop : All Work and No Play: What You can Learn from Game Design” Resumo: Se você espera encontrar horas de teoria em um workshop sobre games, não se increva no “All Work and No Play: What You can Learn from Game Design”.Prático e dinâmico, este workshop tem como objetivo abordar os princípios do design de games, para que o participante entenda porque os games são tão persuasivos e capazes de prender o usuário de maneira tão eficiente.
Interatividade e discussão permitirão que você leve ideias inovadoras para seu dia-a-dia de trabalho. Increva-se e inspire-se!
terça-feira, 1 de setembro de 2009
Classificadores estatísticos - 01
Eu acho que o MultiSign está muito parado por estes dias, então eu achei interessante fazer uma série de posts sobre classificadores estatísticos.
Para começar, vamos estudar o classificador de mínima distância ao centróide.
Imagine que você tem um conjunto de informações sobre elementos de diferentes classes, por exemplo peso e altura de diversas pessoas. E você não sabe, acerca de todos, quais destas pessoas são adultos, crianças ou bebês.
Vamos então desenvolver a solução deste problema.
Primeiramente vamos tomar as pessoas que nós já sabemos se são adultos, crianças ou bebês.
Conjunto dos bebês (1).
pessoa 1 - 0,5m e 4,3kg
pessoa 2 - 0,45m e 3,1kg
pessoa 3 - 0,6m e 5,0kg
pessoa 4 - 0,39m e 3,2kg
pessoa 5 - 0,44m e 3,8kg
pessoa 6 - 0,51m e 4,7kg
.
.
.
pessoa n - 0,55m e 5,3kg
Conjunto das crianças (2).
pessoa n + 1 - 1,5m e 34,3kg
pessoa n + 2 - 1,45m e 33,1kg
pessoa n + 3 - 1,6m e 45,0kg
pessoa n + 4 - 1,39m e 27,2kg
pessoa n + 5 - 1,44m e 33,8kg
pessoa n + 6 - 1,51m e 34,7kg
.
.
.
pessoa n + m - 1,55m e 26,3kg
Conjunto dos adultos (3).
pessoa n + m + 1 - 1,75m e 74,3kg
pessoa n + m + 2 - 1,81m e 93,1kg
pessoa n + m + 3 - 1,66m e 55,0kg
pessoa n + m + 4 - 1,73m e 67,2kg
pessoa n + m + 5 - 1,64m e 53,8kg
pessoa n + m + 6 - 1,61m e 60,7kg
.
.
.
pessoa n + m + p - 1,55m e 42,8kg
Depois de separar cada conjunto, nós calculamos a média do peso e da altura para cada conjunto.
Conjunto 1:
média(peso) - 4,8kg (mp1)
média(altura) - 0,56m (ma1)
Conjunto 2:
média(peso) - 28,1kg (mp2)
média(altura) - 1,57m (ma2)
Conjunto 3:
média(peso) - 68,7kg (mp3)
média(altura) - 1,64m (ma3)
Então, para cada pessoa do conjunto de dados que não se sabe se ela é adulto, criança ou bebê, basta usar o classificador pronto que nós implementamos:
Sendo p o peso da pessoa e a a sua altura,
se (p - mp1)² + (a - ma1)² < (p - mp2)² + (a - ma2)² e (p - mp1)² + (a - ma1)² < (p - mp3)² + (a - ma3)² então a pessoa é um bebê (pertence ao conjunto 1);
se (p - mp2)² + (a - ma2)² < (p - mp1)² + (a - ma1)² e (p - mp2)² + (a - ma2)² < (p - mp3)² + (a - ma3)² então a pessoa é uma criança (pertence ao conjunto 2);
se (p - mp3)² + (a - ma3)² < (p - mp1)² + (a - ma1)² e (p - mp3)² + (a - ma3)² < (p - mp2)² + (a - ma2)² então a pessoa é um adulto (pertence ao conjunto 3).
Essa análise, muito simples, foi apenas para apresentar o classificador estatístico mais simples de todos: o classificador de distância mínima ao centróide (DMC).
A depender do retorno que eu tenha por parte dos leitores, eu posso até colocar códigos em Scilab deste e de outros classificadores.
quarta-feira, 5 de agosto de 2009
Fazendo vídeos e fotos com webcam
Nos últimos dias eu estava precisando fazer uns vídeos para dar continuidade ao meu projeto de mestrado. Então eu procurei algum software que capturasse frames da webcam e fizesse o vídeo, nessa procura eu encontrei o Cheese.
O Cheese é um software simples de usar e que dá bons resultados.
Segue um vídeo da utilização do sistema:
Pena que a tela de exibição dos frames não foi capturada corretamente.
terça-feira, 28 de julho de 2009
Tutorial Scilab - 8 [Usando arquivos]
[English version here.]
Quanto tempo hein? Mas finalmente estou retomando os meus compromissos (dentre eles, o MultiSign).
Pois bem, vamos ver algo sobre manipulação de arquivos com o Scilab agora.
No Scilab, existem diversas funções para manipular arquivos tanto arquivos ASCII quanto binários.
Os aquivos são importantes para melhor gerenciar dados de entrada e resultados obtidos (óbvio não acham?).
Como a maioria deve saber o que é um arquivo, vamos dar continuidade ao post.
Uma boa forma de conhecer as formas de manipulação de arquivos no Scilab é com o help, olhe como acessar o help na figura abaixo:
Na tela de ajuda, digite: file manage e selecione a primeira opção file(.).
Esta função é semelhante à função fopen(.) da linguagem C.
No help, é possível ver várias informações sobre a função file(.).
Algumas das outras funções funções de manipulação de arquivos no Scilab são:
- save;
- load;
- mopen;
- mclose;
- writeb;
- readb.
- read;
- write.
A função write(.) cria arquivos ASCII e a função read(.) carrega os arquivos em variáveis.
As variáveis envolvidas nestas funções geralmente são matrizes e/ou vetores. Vamos aos exemplos agora:
-->x = rand(5,5)
x =
0.2113249 0.6283918 0.5608486 0.2320748 0.3076091
0.7560439 0.8497452 0.6623569 0.2312237 0.9329616
0.0002211 0.6857310 0.7263507 0.2164633 0.2146008
0.3303271 0.8782165 0.1985144 0.8833888 0.312642
0.6653811 0.0683740 0.5442573 0.6525135 0.3616361
-->write("test_data.dat", x);
-->y1 = read("test_data.dat", 1, 2) // 1 linnha e 2 colunas
y1 =
0.2113249 0.6283918
-->y2 = read("test_data.dat", 2, 2) // 2 linhas and 2 colunas
y2 =
0.2113249 0.6283918
0.7560439 0.8497452
-->y3 = read("test_data.dat", -1, 1) // -1 indica que se deve ler todas as linhas
y3 =
0.2113249
0.7560439
0.0002211
0.3303271
0.6653811
-->>y4 = read("test_data.dat", -1, 5) // lê o arquivo inteiro
y4 =
0.2113249 0.6283918 0.5608486 0.2320748 0.3076091
0.7560439 0.8497452 0.6623569 0.2312237 0.9329616
0.0002211 0.6857310 0.7263507 0.2164633 0.2146008
0.3303271 0.8782165 0.1985144 0.8833888 0.312642
0.6653811 0.0683740 0.5442573 0.6525135 0.3616361
O arquivo test_data.dat é apresentado na figura a seguir (clique na figura para vê-la em tamanho real).
sexta-feira, 3 de julho de 2009
Nota aos leitores
Acredito que os leitores do MultiSign devem ter percebido que as postagens estão "meio atrasadas".
Eu estou com algumas atividades no momento que estão tomando muito tempo e eu também tenho outros blogs (Using Scilab, Engenheiro Católico e Catholic Engineer) os quais têm me dado muita satisfação, pois os leitores estão sempre interagindo com comentários e e-mails.
Espero estar renormalizando o MultiSign na próxima semana.
Abraços a todos e que Deus os abençoe.
quinta-feira, 4 de junho de 2009
Uma questão de energia
Eu me lembrei de um problema interessante de física.
Gostaria de verificar o potencial dos leitores do MultiSign.
Pois bem, o problema é o seguinte:
Pegue uma mola e comprima-a ao máximo.
Coloque a mola comprimida em um suporte que não permita que a mola volte à posição de relaxamento e depois mergulhe tudo em um ácido.
Este esperimento deve ser feito usando um ácido que dissolva o material da mola mas que o suporte não sofra danos.
A pergunta: para onde vai a energia contida na mola (kx²/2)?
--------------
A solução mais inteligente pode ganhar um prêmio.
sábado, 30 de maio de 2009
Top Blog
Hoje eu tive uma surpresa ao abrir minha caixa de e-mails. Vi que o MultiSign havia sido indicado ao Top Blog.
Então eu pensei, se os meu leitores não comentam quase nenhum post, alguns poucos entram em contato por messenger ou e-mail. Eu agradeço os que interagem, mas vocês sabem qual a realidade do MultiSign.
Eu fiquei até pensando se não seria uma boa inscrever o MultiSign, mas resolvi avisar aos leitores e ver a reação.
Se a resposta for positiva, eu faço a inscrição.
Se não tiver resposta, enfim é assim mesmo, não irei deixar de atualizar o blog.
sábado, 16 de maio de 2009
Desafio 01
Eu estava pensando umas coisas esses dias e acabei por me lembrar da época de ensino médio, em que eu participava das olimpíadas de física e matemática.
Haviam tantos problemas interessantes. Eu sei que a maioria das pessoas não valoriza os problemas clássicos da matemática, por exemplo, mas estudá-los e tentar resolver os problemas da base do conhecimento abre a mente para aprender cada vez mais, e, além do benefício pessoal, também é possível que outras pessoas usem suas idéias para resolver outros problemas.
Eu mesmo já usei conceitos de teoria dos números, algo que é da base da matemática, para resolver problemas em processamento de sinais e imagens.
Uma vez meu primeiro professor de cálculo disse: "o único conhecimento que você não usa é aquele que você não possui", e isso é verdade.
Eu vou então propor o problema que eu me lembrei enquanto almoçava na 4ª feira desta semana:
Você tem 1001 bolinhas e uma balança de pratos (que serve para comparar dois pesos e determinar o mais leve).
Uma destas bolinhas tem uma massa diferente das outras 1000 bolinhas.
Como determinar se a massa desta bolinha, que é diferente das outras, é maior ou menor que a massa das outras bolinhas usando a balança, no máximo, duas vezes?
---------------------------
Se os leitores se mostrarem interessados por esta minha iniciativa, eu pensei em recompensar as soluções. Talvez transferências para contas corrente sejam interessantes.
Quem tiver uma solução, favor compartilhá-la conosco fazendo um comentário neste post.
quarta-feira, 6 de maio de 2009
Tutorial Scilab - 7 [Operações elemento a elemento]
[English version here.]
Estão vendo como é difícil atualizar o MultiSign e escrever a dissertação? Mas assim que possível iremos regularizar a situação.
Vamos abordar as operações elemento a elemento usando o Scilab.
Este post será basicamente de exemplos.
Vamos supor que temos duas matrizes de mesmo tamanho (X e Y) e queremos multiplicar (Z1) e dividir (Z2) os elementos correspondentes:
X = [x11 x12 x13;
x21 x22 x23;
x31 x32 x33].
Y = [y11 y12 y13;
y21 y22 y23;
y31 y32 y33].
Z1 = [x11*y11 x12*y12 x13*y13;
x21*y21 x22*y22 x23*y23;
x31*y31 x32*y32 x33*y33].
Z2 = [x11/y11 x12/y12 x13/y13;
x21/y21 x22/y22 x23/y23;
x31/y31 x32/y32 x33/y33].
Não existe um operador matemático matricial para tal operação, mas o Scilab tem um recurso para fazer isso. Observem a seguir.
-->X = zeros(3,3);
-->X(:) = [1:9]'
X =
1. 4. 7.
2. 5. 8.
3. 6. 9.
-->Y = ones(3,3) + X'
Y =
2. 3. 4.
5. 6. 7.
8. 9. 10.
-->Z1 = X.*Y
Z1 =
2. 12. 28.
10. 30. 56.
24. 54. 90.
-->Z1 = X./Y
Z1 =
0.5 1.3333333 1.75
0.4 0.8333333 1.1428571
0.375 0.6666667 0.9
As operações de soma e subtração matriciais operam elemento a elemento.
Agora vamos fazer operações lógicas com matrizes.
Os operadores:
- & - AND;
- | - OR;
- ~ - NOT.
-->X = rand(3,3) > 0.2
X =
F T T
T F T
T T T
-->Y = rand(3,3,'normal') > 0.5
Y =
T T F
T F T
F F F
-->Z1 = X & Y
Z1 =
F T F
T F T
F F F
-->Z2 = X | Y
Z2 =
T T T
T F T
T T T
-->Z3 = ~X
Z3 =
T F F
F T F
F F F
-->Z4 = (~X) | Y
Z4 =
T T F
T T T
F F F
Com isso, fechamos a parte de operações matriciais básicas.
