Ir para o conteúdo

 Voltar a invesalius-dev
Tela cheia

InVesalius - Neuronavegador

12 de Março de 2010, 14:51 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 78 vezes

Olá Pessoal,

Trago boas notícias. Testei o neuronavegador juntamente com a mudança de camera na superfície tridimensional, com o Polhemus e tudo o mais. Felizmente funcionou. Eu e o Thiago havíamos testado com os dados simulados, mas suponho que por limitação de hardware, a superfície desaparecia e não atualizava.
Testando agora em um bom computador, core2duo 1.8Ghz e 2Ghz de Ram, funcionou perfeitamente.

No entanto, como nem tudo são flores, a fatia sagital ainda continua com o problema de o scroll mudar de posição, mas a imagem continuar congelada em uma fatia. Caso consigam alguma resposta para tal problema, entrem em contato com a gente. hehehe

Abraços.

Victor Hugo.

Autor: Victor Hugo de Oliveira Souza


3333 comentários

  • 45bc47f23454bc6f0bb5eefccad4b879?only path=false&size=50&d=404Tatiana Al-Chueyr Pereira Martins(usuário não autenticado)
    25 de Março de 2010, 13:49

     

    Boa tarde Victor,

    Ficamos muito satisfeitos com as boas notícias, parabéns!

    No que diz respeito ao wrapper do Claron, temos tido grandes avanços. Paulo está alocado há alguns dias para gerar o wrapper para o dispositivo poder ser utilizado e talvez antes do imaginado teremos isso fucnionando.

    Relacionado ao erro, adicionei ao nosso sistema de tarefas [1] e esperamos ter analisado e resolvido este problema o quanto antes. Para tê-lo solucionado com mais rapidez, você poderia tentar solucioná-lo...!

    Como estão está caminhando o corregistro e as demais partes do projeto?

    Abraços,

    Tatiana

    [2] svn.​soft​ware​publ​ico.​gov.​br/t​rac/​inve​sali​us/t​icke​t/18​2

    • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
      6 de Abril de 2010, 19:32

       

      Olá Tatiana,

      Pois é, posso tentar dar uma olhada sim no que poderia ser este erro.

      Ah, só um detalhe, o link que você mandou não faz referencia ao ticket que voce criou sobre este erro, mas sim sobre o brain segmentation.

      Aqui, estamos testando o algoritmo de neuronavegação e elaborando métodos para tal, a fim de facilitar a correção de possíveis erros e desvios e também partir para a criação do sistema de calibração. Assim que avanços consideráveis forem atingidos, avisarei vocês.

      Caso alguma correção seja feita no InVesalius que possa afetar no neuronavegador, avise-nos por favor, pois estou trabalhando com a versão do branch próxima àquela que trabalhamos em campinas. Estudarei como fazer o merge também.

      Abraços.

      Victor Hugo

      • 45bc47f23454bc6f0bb5eefccad4b879?only path=false&size=50&d=404Tatiana Al-Chueyr Pereira Martins(usuário não autenticado)
        7 de Abril de 2010, 9:25

         

        Bom dia Victor,

        O link correto é este:

        svn.​soft​ware​publ​ico.​gov.​br/t​rac/​inve​sali​us/t​icke​t/23​6

        Será ótimo se você auxiliar na correção, estamos trabalhando em outras funcionalidades no momento.

        Imagino pela sua mensagem que o wrapper que Paulo gerou está funcionando, vocês poderiam prover mais detalhes?

        Abraços,

        Tatiana

        • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
          23 de Abril de 2010, 11:36

           

          Olá Pessoal,

          Estou com um problema bem crítico. Fiz um sistema de coordenadas em dicom sobrescrevendo em um conjunto de imagens de um paciente. Fizemos também um mesmo sistema de madeira (forma de cruz) com escala de 1 em 1 cm no mesmo formato da imagem. Deu tudo certinho, e fizemos isso a fim de verificar se o neuronavegador está em escala correta. Como esperado, está fora de escala, ou seja escolhendo devidamente os pontos para co-registro seria esperado que ao chegar no fim do sistema feirto de madeira, deveria chegar ao fim da imagem, mas isso não está ocorrendo, pois ao movimentar o rastreador, a cruz chega ao fim da imagem antes de o rastreador chegar ao fim da cruz de madeira. A proporção está, quando eu ando cerca de 6 cm com o rastreador ele anda na imagem o equivalente a cerca de 10 cm.
          Gostaria de perguntar para vocês sobre os espaçamentos e os ajustes do tamanho de pixel que o InVesalius faz com as imagens. Estou utilizando o GetPixelSpacing do modulo project. Tem alguma coisa aí que estou esquecendo? Alguma sugestao de teste? Estamos com o tempo um pouco apertado aqui e já fiz inúmeros testes e minha criatividade tá acabando! hehehe

          Grato pela atenção!

          Abraços.

          Victor Hugo

          • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
            23 de Abril de 2010, 13:20

             

            Olá Victor,

            Não entendi muito bem como é este sistema de coordenadas em dicom que você fez.

            Com relação à esta diferença de medida. O GetPixelSpacing - do módulo Dicom - retorna o espaçamento da dicom. Talvez as imagens do seu caso estejam sendo redimensionadas ao abrir, então o espaçamento será diferente da que consta na dicom. Então você deve pegar o espaçamento do vtkImageData usando o método GetSpacing.

            Abraços.

            • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
              27 de Abril de 2010, 20:46

               

              E aí Pessoal, tranquilo?

              Obrigado pelas dicas, mas eu já estava usando o do ImageData mesmo. O problema era que eu estava multiplicando pelo fator do espaçamento em dois lugares diferentes! Consertei, e felizmente, agora eu posso dizer: O neuronavegador está funcionando direitinho. Digo isso com testes que fiz com um exame MRI, um CT e um Analyze. Obrigado pela ajuda até agora.

              No entanto, para que a neuronavegação esteja pronta para implementar no InVesalius, serão necessárias correções de alguns bugs já reportados até agora:

              1- A fatia sagital não atualiza na neuronavegação.
              Obs: Se eu desligo a neuronavegação, mexo no painel da superfície e ligo novamente a navegação, a superfície deixa de atualizar e a sagital passa a atualizar normalmente. Ficando as três orientações funcionando, mas o volume congelado.

              2- A cruz na fatia sagital não atualiza quando faço o Cross Move nas outras orientações, desta forma, ela não atualiza na neuronavegação também (quando faço com que a sagital funcione).

              3- A imagem que tenho aqui de MRI, está com um bug durante a navegação. A fatia axial atualiza normalmente até uma certa fatia em direção ao topo da cabeça, a fatia 179 para ser mais exato. Após isso, o programa interpreta como se estivesse fora dos limites, continua atualizando normalmente mas mostra somente a fatia 179 (quando deveria mostrar a 180, 181, ...), se vou para baixo ele volta a mostrar as outras de modo correto.

              Pessoal, preciso muito resolver estes problemas, se puderem dar uma ajuda seria muito bom. Precisamos resolvê-los com urgência pois necessitamos que o neuronavegador funcione até segunda feira, quando começamos a fazer nossos experimentos.

              Abraços.

              Victor Hugo

              • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                30 de Abril de 2010, 19:07

                 

                E aí Galera???

                É o seguinte, fiz o simulador do navegador. Felizmente consegui resolver o problema 3 do tópico que enviei. Ou seja, só temos os problemas 1 e 2 a princípio.
                Para poder ficar um arquivo do tamanho que o portal aceita, tive que deletar do invesalius os samples, docs e mais um monte de arquivos de idiomas que acho que não vao impedir do programa rodar normalmente.
                Fiz também um pequeno tutorial explicando os passos para navegar.

                Tudo está no arquivo 7zip no file-storage de nome InVesalius-Navigator.[1]
                Espero que dê certo.

                Abraços.

                Victor Hugo

                [1] www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/

                • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                  3 de Maio de 2010, 11:16

                   

                  E ai Victor,

                  Os erros eram relacionados à thread. Aparentemente os erros foram corrigidos. A primeira coisa que eu fiz foi retirar as chamadas à coisas relacionadas ao volume do método Navigation, coloquei direto na thread. Do modo antigo estas chamadas seriam feitas 3 vezes, por haver 3 viewer_slice. A outra alteração foi passar mensagens pubsub que envolvem a interface gráfica através do wx.CallAfter. Abaixo o link com as correções:

                  www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/​view​/pro​ject​s/ri​beir​ao/n​avig​ator​_sim​ulat​ion.​7z

                  Não se esqueça depois de fazer os commits destas correções  no seu branch do svn.

                  Abraços.

                  • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                    4 de Maio de 2010, 20:48

                     

                    Olá Thiago,

                    Muito grato pelas correções. Eu já havia testado passar todas as chamadas para a thread mas mesmo assim ainda não tinha dado certo, mas eu não sabia da existência desse wx.CallAfter, que bom que deu certo. Testei com o neuronavegador utilizando o rastreador (não o simulador) e deu certo.

                    No entanto ainda falta corrigirmos o problema da atualização da cruz na orientação que tínhamos esse problema da fatia não atualizar. No caso do CT, a coronal, a cruz continua a não atualizar. Fiz um teste tentando utilizar o wx.CallAfter no pubsub que envia as coordenadas da cruz no função do viewer_slice: ChangeCrossPosition. Mas deu um erro do tipo: Type Error, None Type Object is callable. (Algo parecido). Não sei se você já havia testado isso, mas pode ser uma possível correção.

                    Muito obrigado pela ajuda!

                    Abraços.

                    Victor Hugo

                    • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                      4 de Maio de 2010, 20:51

                       

                      Ahh, esqueci de falar, como eu havia conversado com a tatiana, não está sendo possível trabalhar com o branch, pois ele está numa versão muito mais atrasada que o trunk e não consigo fazer o merge, nem com o svnmerge, resultando em muitos conflitos.

                      Eu havia combinado com ela de no final de cada semana, fazer o merge manual e enviar um patch pelo file-storage para vocês, para assim podermos controlar as alterações. Farei isto no final da semana, ok?

                      Se houver outra sugestão, fique a vontade.

                      Abraços.

                    • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                      5 de Maio de 2010, 10:01

                       

                      Olá Victor,

                      Qual dos problemas você se refere, ao 2 ou 3? O 3 eu não consegui verificar aqui. O 2, até onde teste, está corrigido.

                      Abraços.

                      • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                        5 de Maio de 2010, 17:51

                         

                        E aí Thiago,

                        Então, o problema 2 ainda permanece. Tanto na funcionalidade normal do CrossMove quanto no Neuronavegador.

                        Fiz então um novo simulador, que ao invés de percorrer uma orientação de cada vez, ele percorre a diagonal do cubo do ImageData, exigindo assim que as três fatias atualizem ao mesmo tempo.
                        Testando no exame de CT (aquele do buraco na testa), a cruz atualiza normalmente, como se o erro estivesse corrigido, mas nos exames de MRI que utilizo aqui, esse problema ainda persiste. Imagino que seja algo relacionado à orientação da imagem.

                        Subi o novo simulador para o file-storage [1].

                        Alguma idéia?

                        Obrigado!

                        Abraços.

                        [1] - www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/​down​load​/nav​igat​or_s​imul​atio​n_di​agon​al.7​z?fi​le%5​fid=​2090​1626

                        • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                          6 de Maio de 2010, 11:29

                           

                          Olá Victor,

                          Eu testei com os casos rp-mri1, rp-mri2, rp-mri3, rp-mri4 e rp-mri6  no Linux, o Paulo testou com o caso rp-mri5 no Windows, estes são casos que você nos enviou há um tempo atrás. O problema não ocorreu. Talvez este problema só ocorra com este exame que você utiliza, você poderia nos enviar este caso?

                          Abraços.

                          • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                            10 de Maio de 2010, 18:10

                             

                            E aí Thiago, tranquilo?

                            O caso que eu estou trabalhando é o rp-mri3, desses que eu mandei pra vocês. De todos os testes que fiz aqui os resultados são os seguintes:

                            Utilizando o navigator_simulation_diagonal:

                            1- Em nenhum dos 6 rp-mri apareceu a cruz na fatia sagital.
                            2- No exame CT de vocês aparece a cruz em todas as orientações durante a simulação da neuronavegação.

                            Utilizando o navigator_simulation corrigido por você:

                            1- Em todos os exames, aparece a cruz atualizando em todas as fatias, mas deve ser observado que enquanto uma orientação muda, as outras ficam na última imagem de cada orientação estáticas.

                            Utilizando o navigator_tracker (navegador corrigido por você mas sem simulação e sim com o rastreador):

                            1- Nos exames de MRI a cruz não atualiza na fatia sagital.
                            2- No exame de CT, a cruz não atualiza na fatia coronal.
                            3- Quando movimento o rastreador distante da cabeça do indivíduo, se estou fora dos limites para duas orientações e movimento na direção que está dentro do limite, a cruz atualiza nas duas orientações que estão fora, mas fica parada nos limites na orientação que está se movendo (como esperado).

                            Isto é tudo. Nos testes que vocês fizeram, foi com a simulação diagonal que enviei por último? Se sim, o problema não está nos exames e sim em algo relacionado com o computador daqui, imagino eu. Alguma sugestão?

                            Abraços.

                            Victor Hugo

                              • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                                19 de Maio de 2010, 10:53

                                 

                                Olá Victor,

                                Só hoje foi possível vermos este seu patch. Infelizmente tem um problema,  você não mandou no patch o módulo data.bases, o que impossibilita de aplicarmos seu patch. Você poderia nos mandar outro patch já com este módulo ?

                                Abraços.

                                • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                  21 de Maio de 2010, 14:02

                                   

                                  Fala Thiago,

                                  Posso enviar sim. Estamos trocando os PCs do laboratório, por isso tá uma confusão. Segunda feira eu te mando.

                                  Abraços.

                                  Victor Hugo

                                • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                  25 de Maio de 2010, 19:45

                                   

                                  Olá Thiago,

                                  Aqui vai o link para download [1] dos módulos bases.py e co_registration.py, ambos devem ficar na pasta data. Alguma novidade sobre os problemas que reportei?

                                  Abraços.

                                  Victor Hugo

                                  [1] - www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/​down​load​/Mod​ulos​_bas​es_c​oreg​istr​atio​n.ra​r?fi​le%5​fid=​2126​3125

                                  • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                                    26 de Maio de 2010, 14:27

                                     

                                    Oi Victor,

                                    O seu patch referencia uma função de nome FlipX, porém esta função não existe no bases.py que você nos enviou, existe apenas o FlipY.

                                    Sobre os problemas, ainda estamos vendo.

                                    Abraço.

                                    • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                      28 de Maio de 2010, 18:35

                                       

                                      Desculpe pela confusão Thiago, a função FlipX é a mesma que FlipY, eu mudei e te mandei o arquivo que eu não havia modificado. Por favor, no arquivo bases.py que te mandei, mude para FlipX. Não há mais nenhuma diferença.

                                       Abraços.

                                      Victor Hugo

                                      • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                                        9 de Junho de 2010, 16:02

                                         

                                        Oi Victor,

                                        Desculpa pela demora, estava tentando compilar uma biblioteca no mac os x e assim testar o seu patch nele. Então, ao no quarto botão do neuronavegador (TEP) o InVesalius está travando, isso no Linux, no Window e Mac eu não testei ainda. Não aparece nenhum erro, me parece que isto acontece por não ter o hardware.

                                        Abraço.

                                        • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                          9 de Junho de 2010, 19:17

                                           

                                          Olá Thiago,

                                          De fato, a versão que subi como patch para você, é a versão a ser usada com o rastreador. Eu ainda não adicionei alguma mensagem de erro ou algo que não deixe o InVesalius travar caso o rastreador não esteja conectado.
                                          Trocamos de computador agora, e estou tendo problemas para que a placa PCI serial seja instalada (problemas com driver), tenho testes a fazer, assim que conseguir fazer tudo funcionar volterei a trabalhar no InVesalius.

                                          Enquanto isto, alguma novidade sobre o problema da atualização da cruz em uma das orientações? Você testou o simulador que percorre a diagonal do cubo do ImageData que lhe enviei?

                                          Abraços.

                                          • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                                            16 de Junho de 2010, 9:37

                                             

                                            Oi Victor,

                                            Apliquei o patch que você mandou, desculpa pela demora. Peço que você implemente uma função para verificar se há o aparelho conectado ao computador, caso não tenha exiba uma mensagem de alerta e que e não deixe o usuário usar esta ferramenta.

                                            Testamos sim com a versão que percorre na diagonal, não consegui perceber o error que você disse. Victor, você poderia vir algum dia ao CTI e talvez trazer o rastreador? Veja uma data possível para você, por favor.

                                            Abraços.

                                            • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                              21 de Junho de 2010, 15:52

                                               

                                              Olá Thiago,Desculpa pela demora novamente.Darei um jeito sim de ir ao CTI e levar ambos os rastreadores, estamos vendo se dá pra todos nós irmos, eu, o André e o Eduardo. Qual data seria melhor para vocês? A gente poderá ir a partir da primeira semana de julho.Enquanto isto, tentarei colocar alguma mensagem de erro para o caso em que o rastreador não esteja conectado.Abraços e até! 

                                            • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                              30 de Junho de 2010, 19:04

                                               

                                              Fala Thiago,

                                              Enquanto nâo decidimos a data, aí vai o patch do neuronavegador [1] na última versao do trunk, a rev1906. Fiz algumas correções e ajustes com relação ao outro que tinha enviado a você.

                                              Abraços.

                                              Victor Hugo

                                               [1] - www.​soft​ware​publ​ico.​gov.​br/f​ile/​2201​9416​/pat​ch_1​906%​2epa​tch

                                              • 11934aa49e5691448193abe240cf2f60?only path=false&size=50&d=404Sebastian Höfle(usuário não autenticado)
                                                16 de Novembro de 2010, 23:24

                                                 

                                                Olá Victor Hugo,

                                                 

                                                conheci o Invesalius por meio do laboratório de Neurofisiologia da Profa. Claudia Vargas (IBCCF da UFRJ). Estou interessado na parte de neuronavegação com o sistema Polhemos. Vi que você trabalhou nessa parte e queria fazer algumas perguntas:

                                                Você pode informar em que estado está essa parte?

                                                Tem um exemplo ou um texto que descreve o procedimento para fazer a navegação funcionar ?

                                                Tem uma parte que ainda precisa ser desenvolvida, testada ?

                                                Obrigado já pelas informações.

                                                Um abraço,

                                                Sebastian

                                                • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                                  17 de Novembro de 2010, 14:39

                                                   

                                                  Olá Sebastian,Estamos trabalhando no desenvolvimento do neuronavegador. O estado atual dele permite que seja utilizado com dois rastreadores da marca Polhemus, o modelo ISOTRAK II e o modelo PATRIOT, em ambos os aparelhos o resultado foi bem satisfatório. Ainda não finalizamos a interface gráfica que permite o usuário escolher qual deles usar, o que ainda limita a distribuição do programa. Além disso, existem dois algoritmos diferentes que podem ser utilizados, para o PATRIOT é possível navegar utilizando dois sensores (a caneta e o cubinho) e dessa forma tem-se uma referencia móvel, não havendo necessidade de que o voluntário mantenha a cabeça fixa, mas para o ISOTRAK II esse algoritmo acarreta problemas que impedem a navegação, sendo possível utilizar somente a "caneta" stylus e por isso o voluntário deve manter a cabeça fixa durante toda a navegação. Vale dizer que o programa atualmente suporta também o rastreador óptico MicronTracker 3.5 da marca Claron.Ainda não escrevemos um manual para o usuário, mas isso eu posso com certeza escrever caso haja necessidade, já que o procedimento é bem simples e intuitivo.Em que aplicação o senhor usará o neuronavegador? Qual o modelo Polhemus será utilizado?Espero ter ajudado. Fique a vontade para perguntar e conversar sobre o neuronavegador.Abraços.Victor Hugo 

                                                  • 11934aa49e5691448193abe240cf2f60?only path=false&size=50&d=404Sebastian Höfle(usuário não autenticado)
                                                    18 de Novembro de 2010, 21:41

                                                     

                                                    Victor,

                                                    muito obrigado pela resposta compreensiva e cooperativa ! 

                                                    A aplicação do neuronavegador é com TMS. A idéia principal é dar uma orientação melhor da posição onde é aplicado uma estimulação do coil, visualizando e opcionalmente guardando a posição.

                                                    O aparelho é o Polhemus Isotrack II. Nos temos tanto o cubinho e o stylus. Pena que tem problemas de usar a referência (cubinho) com o Isotrack. De qualquer forma, estou disposto a ajudar nesse ponto.

                                                    Para começar, eu precisaria de mais algumas informações sobre o código e algoritmo usado. Eu baixei o código da revisão 1909 que e vi que tem suas alterações incluidas. Você tem código novo depois dessa revisão ?

                                                    Tenho mais perguntas: Eu vi as classes Corregister e Bases e o task navigator. Você poderia me explicar o algoritmo usado para fazer o coregistro ? Pelo código deu a impressão que se escolhe um ponto na imagem e adquire o ponto escolhido com o tracker. Com esses pares se monta a transformação ? É com esse algoritmo que a pessoa tem que ficar parado ?

                                                    Se puder tirar essas dúvidas, seria ótimo. Agradeço já.

                                                     

                                                    Abs,

                                                    Sebastian

                                                     

                                                    • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                                      23 de Novembro de 2010, 16:32

                                                       

                                                      Olá Sebastian,Desculpa por demorar a responder.A situação é a seguinte, o código que está no trunk é o primeiro que fizemos, ele está muito desatualizado, mas ainda sim funciona. Obs. Este algoritmo é para ser usado com somente a caneta stylus conectada.Com relação a usar duas referencias com o Isotrak, achamos que o problema é com o aparelho mesmo. Seria muito bom se você testasse a princípio, usando seu Polhemus se o navegador funciona. Os passos para navegar são simples, clicar na cruz verde que tem na aba superior principal horizontal e com ela selecionar os tres pontos fiduciais na imagem (fossa nasal, trago auricular direito e o esquerdo) vc seleciona deixando o centro da cruz sobre o ponto e clicando no botao (FNI - para fossa nasal, TEI - trago auricular esquerdo e TDI - trago auricular direito) em seguida vc seleciona os mesmos tres pontos só que com o stylus, deixando a ponta da caneta sobre o ponto mais proximo que possa estar da imagem e clicando nos botoes FNP - fossa nasal polhemus, TEP - trago auricular esquerdo polhemu e assim por diante. Em seguida clicar em corregistrate e depois em neuronavigate. Durante TODO o processo, tanto de captura dos pontos quanto de navegação, a cabeça do voluntário deve ficar fixa, caso contrário não haverá correspondencia entre a cabeça e as imagens.Eu estou terminando a interface facilitada de interação com o usuário e por isso estou tendo que mudar bastante coisa no código. Além disso, o InVesalius está passando por uma fase de reestruturação, então muitas funções estão sendo modificadas, e por isso nem tudo está funcionando. Para você ter uma idéia, eu estou trabalhando com uma versão bem anterior para não ter problemas. Peço que, por favor, aguarde um pouco, que logo poderemos disponibilizar para o senhor uma versão completa e funcional do navegador. Sua ajuda será muito importante.Outra pergunta, o senhor está estudando como fazer segmentação de crânio em MRI? Abraços,Victor Hugo 

                                                      • 11934aa49e5691448193abe240cf2f60?only path=false&size=50&d=404Sebastian Höfle(usuário não autenticado)
                                                        24 de Novembro de 2010, 0:26

                                                         

                                                        Olá Vitor,

                                                        o aparelho Polhemus que nos temos, retorna dados tanto do cubinho como do stylus. Testei isso com uma conexão via o Hyperterminal do windows e também dentro do invesalius. O retorno contem uma linha para cada tipo (cubinho, stylus) conectado. Exemplo:

                                                        01  12.4   -90.4    5.2   50.2    30.2    71.8

                                                        02   97.3   13.5    82.3

                                                        Nesse caso na primeira porta está conectado o cubinho e o stylus na porta 2. Os sete valores são número da porta, os três coordenados da posição e os três angulos (seguindo a documentação do Isotrack ). Os quatro valores da segundo linha são número da porta do stylus e os coordenados da posição do stylus.

                                                        Com esses dados acho que é possível de usar o cubinho como referência (fixado na cabeça) e o stylus para registrar os marcadores.

                                                        Uma dúvida: Você recebe posição e orientação da caneta stylus ? Com a nossa versão do aparelho recebemos só a posição. Este caso confere com a documentação. Será que você tem uma outra versão ?

                                                         

                                                        Você falou que tinha outros aparelhos com que o algoritmo funciona. Como o formato do retorno depende do aparelho e da conexão nas portas, pensei em colocar esse tipo de parametros no arquivo de configuração. P.ex.:

                                                        [Tracking]

                                                        sistema = polhemus
                                                        porta_referencia = 1
                                                        porta_stylus = 2

                                                        O que você acha dessa proposta ?

                                                         

                                                        Eu posso ver a adaptação para o cubinho e o stylus. Atualmente tenho a revisão 1909 como base. Será que podemos usar um branch para juntar nossas atividades ? Qual é a sua revisão ?

                                                        Para responder a pergunta referente a segmentação do crânio. Não estou trabalhando nisso. Mas quem sabe, no futuro.

                                                        Outra coisa: pode chamar de você. Estou bem jovem ainda ;)

                                                         

                                                        Abraços,

                                                        Sebastian

                                                        • 8b29dd625bf14f6a12777f64db9aa2e7?only path=false&size=50&d=404Victor Hugo de Oliveira Souza(usuário não autenticado)
                                                          7 de Dezembro de 2010, 17:33

                                                           

                                                          E aí Sebastian, tudo bem?Primeiramente, peço muitas desculpas por demorar tanto a responder, estou em época de provas finais e por isso estava estudando e acabei esquecendo de escrever a resposta, sendo também que não queria escrever algo incompleto. Espero que compreenda. Agora estou bem mais disponível e poderemos conversar melhor. Até onde li no manual, o stylus deve ser colocado SEMPRE no canal 1 quando os dois sensores foram utilizados simultaneamente, imagino que seja por isso que a resposta dele não esteja enviando os 6 graus de liberdade, e no início da página 7 do manual, no tópico 14 está escrito que se os seis graus de liberdade não forem apresentados é porque algum problema existe, ou alguma configuração está inadequadamente ajustada.Com relação a sua proposta do arquivo de configuração, como eu utilizo o stylus no canal 1, eu mantenho como padrão a porta_stylus = 1 e a porta_referencia =  2, justamente porque li no manual que o stylus deve ser usado na porta 1. Imagino que seja mais intuitivo deixar o canal 2 pra qualquer sistema como sendo a referencia, porque caso se usa o sistema sem ser com duas referencias, será utilizada somente a porta 1.Eu estou utilizando a revisao 1968. Nós e o pessoal do InVesalius tentamos utilizar um branch para separar as atividades do neuronavegador, mas acabou não dando certo. Não sei como criar um branch e como trabalhar certinho com isso evitando conflitos e tudo mais, e como o InVesalius ainda não foi lançado, teremos que trabalhar sempre aqui no Portal do Software Público, onde as ferramentas de controle de versão são ruins e tem muitos problemas com o merge de versões. O melhor imagino eu, seria passar o código pra você, e então trabalhamos separadamente e depois juntamos os resultados. Teste novamente o Polhemus invertendo as portas, stylus e cubinho, no Hyper Terminal, teste também baixar o Python, a biblioteca PySerial e por um código simples no command line do Python:>> import serial>> ser = serial.Serial(0, timeout = 1) >> ser.write('P')>> ser.readlines() Veja se a resposta é uma lista com os outputs dos sensores.Abraços, Victor Hugo. 

Tutorial passo-a-passo sobre uso do software InVesalius 3

17 de Abril de 2010, 11:45, por Desconhecido

Se você tem interesse em utilizar o software de reconstrução 3D de imagens médicas InVesalius, mas não sabe por onde começar, acesse já o tutorial escrito pelo designer Cícero Moraes:



InVesalius 3 Beta 2 disponível

6 de Março de 2010, 11:41, por Desconhecido

Para saber mais sobre o InVesalius 3.0.0 Beta 2, leia:
http://svn.softwarepublico.gov.br/trac/invesalius/wiki/releases/pt/changelog

Continue contribuindo com a Comunidade InVesalius!

------------------------------------



Siga cada passo do InVesalius com o Twitter!

8 de Fevereiro de 2010, 9:57, por Desconhecido

Acompanhar o InVesalius pelo Twitter permitirá que você saiba, em primeira mão, sobre:



InVesalius 3 Beta 1 disponível para testes em Windows e GNU Linux

27 de Janeiro de 2010, 10:50, por Desconhecido



Trabalho acadêmico discute aplicação do OpenBRR ao InVesalius

6 de Novembro de 2009, 16:35, por Desconhecido

Autor: Tatiana Al-Chueyr Pereira Martins