EBImage package - Manipulação de imagens

Caros amigos, a dúvida é a seguinte: Estou tentando por meio do pacote EBImage contar um número de áreas de pólen na colméia. Para isso estou utilizando uma imagem retirada da internet apenas para treino. Nesta imagem os pontos de tons amarelos (onde há o pólen), alaranjados e brancos são de meu interesse. No entanto acho que os locais com pólen são mais difíces por estarem separados na área, por isso estou tentando contá-los e no caso de sucesso, prosseguirei com a contagem das demais áreas. Pois bem, o código abaixo, conseguiu isolar razoavelmente os pontos de polén (amarelos), no entanto ficou alguns "resíduos" o qual não consegui eliminá-los para contar apenas o pólen. Alguém sabe como fazer isso? Alguma idéia melhor de como fazer? OBS: A imagem utilizada encontra-se em anexo. Peço desculpar por não fornecer um Link direto, pois não consegui fazer isso utilizando nenhuma das hospedagens (box, ubuntu one ou 4 shared), a função read.Image() sempre retorna erro: "Erro em readJPEG(x, ...) : JPEG decompression error: Not a JPEG file: starts with 0x0a 0x0a" e não sei o que isso significa. grato pela atenção. library(EBImage) imagem <- readImage("http://www.4shared.com/download/GYeHK30-/colmeia.jpg") display(imagem) str(imagem) imagem<-imagem[1:604,60:343,1:3] display(imagem) hist(imagem) imagem2 <- imageData(channel(imagem, mode="red")) # canal vermelho destacou melhor os pontos desejados imagem2 <- 1-imagem2 # inverte as tonalidades display(imagem2) plot(density(imagem2), xlim=c(0,1)) filled.contour(imagem2, asp=1) imagem2[imagem2>=0.2] <- 1 imagem2[imagem2<0.2] <- 0 display(imagem2) # os pontos de interesse destacaram, no entanto há muitas interferências # a duúvida é como removê-los?

O sucesso desse tipo de procedimento no sentido de tentar automatizar depende do contraste entre áreas de interesse e fundo. Tive umas experiências com medidas de lesão em folhas e tudo mais e daí eu conclui que é mais rápido você editar a foto fora, ou seja, em um aplicativo dedicado à edição de imagens. Lá você faria a passagem de colorido monocromático mais rápido e vendo a qualidade do resultado. Depois você só leria a monocromática dentro do R para fazer a contagem. No caso eu uso o gimp como editor de imagens. Outras opção para tentar quase automatizar é ler a foto como um gráfico e clicar sobre a foto com o locator() ativado, marcando de vermelho pontos já clicados (locator(type="p", col="red", pch=19)), ao clicar em todos no final tem como saber número de cliques. À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Obrigado Walmes pela atenção. Eu havia instalado o gimp para tentar manipular a imagem. Confesso que ainda estou me adaptando a ele. Entretando eu estava pensando em uma forma de separa e medir as diferentes areas da colméia. O procedimento manual utilizado na pesquisa é bastante antigo e conduz a erros de estimativa de áreas irregulares.Pensei em utilizar esse pacote ao ver seu post no "Ridículas". Achei que talvez fosse uma ferramenta possível de aplicá-la nessa situação. Mas como você disse o problema esta nos contrastes entre as áreas de interesse e fundo. Valeu a dica. Vou tentar as abordagens que sugeriu abçs Em 18 de setembro de 2013 19:37, walmes . <walmeszeviani@gmail.com>escreveu:
O sucesso desse tipo de procedimento no sentido de tentar automatizar depende do contraste entre áreas de interesse e fundo. Tive umas experiências com medidas de lesão em folhas e tudo mais e daí eu conclui que é mais rápido você editar a foto fora, ou seja, em um aplicativo dedicado à edição de imagens. Lá você faria a passagem de colorido monocromático mais rápido e vendo a qualidade do resultado. Depois você só leria a monocromática dentro do R para fazer a contagem. No caso eu uso o gimp como editor de imagens. Outras opção para tentar quase automatizar é ler a foto como um gráfico e clicar sobre a foto com o locator() ativado, marcando de vermelho pontos já clicados (locator(type="p", col="red", pch=19)), ao clicar em todos no final tem como saber número de cliques.
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Tentei baixar esta biblioteca library(EBImage) mas diz que não está disponível para versão R 3.0.1 do Windows. . Caros amigos, a dúvida é a seguinte: Estou tentando por meio do pacote EBImage contar um número de áreas de pólen na colméia. Para isso estou utilizando uma imagem retirada da internet apenas para treino. Nesta imagem os pontos de tons amarelos (onde há o pólen), alaranjados e brancos são de meu interesse. No entanto acho que os locais com pólen são mais difíces por estarem separados na área, por isso estou tentando contá-los e no caso de sucesso, prosseguirei com a contagem das demais áreas. Pois bem, o código abaixo, conseguiu isolar razoavelmente os pontos de polén (amarelos), no entanto ficou alguns "resíduos" o qual não consegui eliminá-los para contar apenas o pólen. Alguém sabe como fazer isso? Alguma idéia melhor de como fazer? OBS: A imagem utilizada encontra-se em anexo. Peço desculpar por não fornecer um Link direto, pois não consegui fazer isso utilizando nenhuma das hospedagens (box, ubuntu one ou 4 shared), a função read.Image() sempre retorna erro: "Erro em readJPEG(x, ...) : JPEG decompression error: Not a JPEG file: starts with 0x0a 0x0a" e não sei o que isso significa. grato pela atenção. library(EBImage) imagem <- readImage("http://www.4shared.com/download/GYeHK30-/colmeia.jpg") display(imagem) str(imagem) imagem<-imagem[1:604,60:343,1:3] display(imagem) hist(imagem) imagem2 <- imageData(channel(imagem, mode="red")) # canal vermelho destacou melhor os pontos desejados imagem2 <- 1-imagem2 # inverte as tonalidades display(imagem2) plot(density(imagem2), xlim=c(0,1)) filled.contour(imagem2, asp=1) imagem2[imagem2>=0.2] <- 1 imagem2[imagem2<0.2] <- 0 display(imagem2) # os pontos de interesse destacaram, no entanto há muitas interferências # a duúvida é como removê-los?
participantes (3)
-
Fernando Antonio de souza
-
Mauro Sznelwar
-
walmes .