Ir para o conteúdo

 Voltar a invesalius-usrs
Tela cheia

Leitura de outros tipos de imagens (tif, png) ou conversor DCM

23 de Julho de 2012, 10:58 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 829 vezes

Olá a todos!

 

Estou envolvido em um projeto no qual o InVesalius seria muito útil no sentido de converter uma sequência de imagens em um modelo 3D.

 

Aliás são dois projetos, e os dois contam com uma sequência de imagens PNG ou TIF as quais preciso converter em uma malha 3D.

Fiz um pequeno teste com um vegetal, mas só consegui reconstruir a voxel texture, sem ser uma malha propriamente dita no Blender:

https://plus.google.com/photos/115430171389306289690/albums/5767665021647593857/5767665020628282994


Tentei várias formas de fazer isso, a começar pelo InVelsalius. Ao que parece ele lê apenas arquivos DICOM. Tentei outros softwares (muitos outros) mas não consegui fazer uma boa conversão. Achei um que convertia a sequência PNG ou TIF em DCM. O InVesalius até carregou, mas não abriu a sequência.

 

Gostaria de saber se há uma forma de abrir essas sequências no InVesalius, ou mesmo converter essa mesmaem arquivos DICOM que possam ser lidos no InVesalius. É possível?

 

Grande abraço e votos de ótimo dia!

Autor: Cícero Moraes


3232 comentários

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

     

    Olá Cícero,

    Você tem feito trabalhos bem legais com o InVesalius. Parabéns!

    Sobre a conversão. Você já deu uma olhada no dcmtk? Ele tem uma ferramenta de conversão de jpeg (e outros formatos) para dicom: supp​ort.​dcmt​k.or​g/do​cs-d​cmrt​/img​2dcm​.htm​l

     Abraço.

    • 603120a5404f2231a1ba4cb800ef8701?only path=false&size=50&d=404Cícero Moraes(usuário não autenticado)
      23 de Julho de 2012, 17:09

       

      Olá Thiago!

       

      Obrigado pelas palavras e pela dica!

       

      Eu havia instalado esse programa há tempos atrás, mas não havia ligado o nome a pessoa.

      Lí a documentação e converti os arquivos usando um laço for, mas ao que parece todos os arquivos ficaram com o campo (#) setado com o valor 1. Na hora que eu importo a sequência de arquivos no InVesalius ele pede que eu carregue mais arquivos para que o gráfico seja criado. Mas eu carreguei 42!

       

      Deduzi que o problema está no campo #, que provavelmente faz o InVesalius achar que se trada de 42 arquivos diferentes.

       

      Tentei editar o campo no InVesalius mas não consegui, tentei em outros programas mas eles não abriram o .DCM.

       

      Vou ler mais e tentar resolver isso. Se tiver um jeito de editar esses dados do DICOM creio que eu setaria todos com o mesmo "paciente" e na ordem correta.

       

      Grande abraço!

      • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
        24 de Julho de 2012, 13:59

         

        Olá Cícero,

        Eu tenho um script aqui que uso para transformar de jpg, bmp, ... para dicom .Ele está nesse repositório : bitb​ucke​t.or​g/tf​mora​es/i​mg2d​cm/

        É um script Python. Basicamente você faz o seguinte:

        $ python img2dcm.py -i diretorio_imagens_entrada -o diretorio_dicom_saida -t jpg

        Adicionalmente, há parâmetros para alterar espaçamento, modalidade, identificação da série e instituição.

        Abraço.

        • 603120a5404f2231a1ba4cb800ef8701?only path=false&size=50&d=404Cícero Moraes(usuário não autenticado)
          16 de Agosto de 2012, 19:51

           

          Olá Thiago!

           

          Que ótima notícia! Vou testar ele o mais rápido possível.

           

          Sofri um bocado para converter um arquivo Vtk em DICOM esses dias, mas consegui e abri ele no InVesalius (usando o pacote para o Ubuntu 12.04).

           

          Até gravei um vídeo onde importo ele no Blender:

          yout​u.be​/LMd​xKwf​Ekvg

           

          Grato pela atenção e ajuda. Votos de excelente dia!

        • 603120a5404f2231a1ba4cb800ef8701?only path=false&size=50&d=404Cícero Moraes(usuário não autenticado)
          25 de Agosto de 2012, 17:54

           

          Olá Thiago!

           Testei novamente aqui e funcionou!

           Dessa vez eu vaixei um vídeo .MOV desse site: www.​ouco​m.oh​iou.​edu/​virt​ualp​ig/i​dent​ifie​d_ax​ial_​movi​e.ht​m

           e converti ele numa sequência de imagens, que foram convertidas novamente em DCM.

          Daí fiz o acabamento no modelo.

          O resultado final pode ser visto aqui: pica​sawe​b.go​ogle​.com​/115​4301​7138​9306​2896​90/P​orco​3D

          Obrigado mesmo! Grande abraço.

        • 603120a5404f2231a1ba4cb800ef8701?only path=false&size=50&d=404Cícero Moraes(usuário não autenticado)
          27 de Agosto de 2012, 10:09

           

          Complementando, editei um vídeo mostrando o processo de conversão de um vídeo de tomografia em uma malha 3D renderizada:

           

          yout​u.be​/s5N​-UMP​7EE8

           

          Grande abraço!

          • 1fbd45457f038c5db35282056c364a63?only path=false&size=50&d=404Daniel Fortier(usuário não autenticado)
            27 de Setembro de 2012, 17:48

             

            Olá a todos, tudo bem?

             

            Estou precisando converter jpgs em dcm, exatamente como o Cícero fez, mas o img2dcm não está funcionando, provavelmente por culpa minha. Com o Activepython não funciona, e com o interpretador da Python mesmo diz que falta modulos.

             

            Já tentei mil maneiras, inclusive abrir jpgs em outros programas (mimics e vgstudio) e exportar para dcm, mas o invesalius nao abre as imagens exportadas nesses programas. Nem mesmo abre as imagens exportados pelo photoshop (que salva em dcm).

             

            Alguem pode me ajudar a fazer o img2dcm funcionar no windows?

            Obrigado

            daniel

            • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
              1 de Outubro de 2012, 12:56

               

              Olá Daniel,

              Me desculpe pela demora em responder. 

              Para rodar o img2dcm você vai precisar ter os seguintes módulos python: VTK, GDCM e o vtkgdcm.

              O vtk você consegue  baixar aqui www.​lfd.​uci.​edu/​~goh​lke/​pyth​onli​bs/

              O gdcm você vai ter que compilar por conta própria, o vtkgdcm você compila junto com o gdcm, só bastando ajustar uma variável na compilação.

              Nunca usei o photoshop para isso. Acredito que você tenha que exportar cada imagem em separado. O problema é que cada arquivo vai ser de uma série diferente.

              • 1fbd45457f038c5db35282056c364a63?only path=false&size=50&d=404Daniel Fortier(usuário não autenticado)
                13 de Outubro de 2012, 23:27

                 

                Olá Thiago,

                 Ainda não consigo fazer funcionar no windows... vou testar um outro dia no linux... 

                Enquanto isso, vc conhece outra ferramenta (gratuita) para passar de imagem para dicom? Tenho varios cranios de vertebrados tomografados, mas as imagens estao em jpg.

                 Obrigado

                daniel 

    • 1fbd45457f038c5db35282056c364a63?only path=false&size=50&d=404Daniel Fortier(usuário não autenticado)
      7 de Março de 2013, 10:17

       

      Olá Thiago,

      Olha só, não consigo fazer o script Python funcionar. Mas o dcmtk funciona muito bem, mas as imagens convertidas não abrem no InVesalius pq não informei dados de paciente, serie, etc.

       Você sabe que parametros precisam obrigatoriamente estar preenchidos (e que tipo de informação, string, inteiro sequencial, etc) para que o invesalius abra corretamente os arquivos?

       grande abraço

      daniel

      • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
        8 de Março de 2013, 15:20

         

        Oi Daniel,

        O script python que você diz é esse [1], né? O Cícero me reportou que as dicoms geradas por esse script numa certa versão do Debian, eu acho, não são possíveis de serem abertas no InVesalius e em outros softwares. Eu ainda não verifiquei isso. Você poderia tentar utilizar esse script no Ubuntu 12.10, que, até onde eu sei, está funcionando.

        Como você está gerando as dicoms com o dcmtk?

        As dicoms devem ter as informações de espaçamento, Instance Number, Instance Number, Image Number (diferente para cada imagem), Image Position (Patient) (diferente para cada imagem), Patient ID, Series Number, Study ID (estes 3 últimos sendo idênticos para as imagens de uma mesma série).

         Abraço.

        [1] - bitb​ucke​t.or​g/tf​mora​es/i​mg2d​cm

        • 1fbd45457f038c5db35282056c364a63?only path=false&size=50&d=404Daniel Fortier(usuário não autenticado)
          8 de Março de 2013, 16:26

           

          Pois então, o Cícero postou que usou o seu script python e conseguiu abrir no InVesalius.

          Estou fazendo um aplicativo com freepascal/lazarus para converter um conjunto de jpgs em dcm, utilizando dcmtk, invocando o img2dcm. É até simples, é só invocar

          img2dcm image.jpg out.dcm -vlp -k ’PatientName=Crocodylus’

           mas eu tenho que informar outros atributos para o invesalius abrir normalmente. Por isso eu quero saber quais sao os atributos obrigatórios, pois quero popular somente estes para fazer os testes.

          Patient Id = fixo
          Series Number = fixo
          Study ID = fixo
          Instance Number = fixo ?
          Image Number = sequencial, inicianco de 0 ou de 1?
          Image Position = sequencial, mas o incremento é em micrometros, milimetros, ou ?

           é isso? eu poderia até ir testando na sorte, mas estou muito sem tempo, preciso fazer isso nas horas vagas apenas.

           abraço

          daniel

          • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
            11 de Março de 2013, 8:42

             

            Oi Daniel,

            Essas informações de Patient ID, Series Number, Study ID, Instance Number, Image Number e Image Position o img2dcm gera por conta própria, nem precisa se preocupar com isso.

            Um exemplo de como invocar o img2dcm:

            python img2dcm.py -i ~/Imagens/fatias -o ~/dcm/fatias -s 1.0 1.0 1.0 -t png -p "Antonio Carlos"

            Onde:

            -i Indica a pasta contendo as imagens. Sãos imagens de entrada.

            -o Pasta onde serão armazenadas as dicoms. Imagens de saída.

            -s espaçamento. Você tem que passar 3 números separados por espaço.

            -t formato das imagens de entrada. Pode ser "png", "bmp", "tif", "jpg" e "vti".

            -p é o nome do paciente.

            Tente usar o img2dcm desse jeito e veja se funciona.

            • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
              3 de Fevereiro de 2014, 10:43

               

              Bom dia pessoal, esse conversor de imagens para DICOM poderia funcionar para Windows se não qual versão Linux que funciona bem? Um abraço e bom dia.

              • 9512fd15511b858a19127f17fd75fbf2?only path=false&size=50&d=404Paulo Henrique Junqueira Amorim(usuário não autenticado)
                4 de Fevereiro de 2014, 9:00

                 

                Prezado Ricardo,

                No Linux, nós testamos no Ubuntu 12.10 e 13.04.

                Em Windows é para funcionar, não realizamos testes mas caso não funcione com pequenos ajustes deve ficar ok.

                Atenciosamente,

                Paulo Amorim

                • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                  5 de Fevereiro de 2014, 23:49

                   

                  Vou fazer no Linux para ver e no Windows como faço para rodar, é a mesma coisa que no Linux? Instala o Python e executa o programa e no windows têm programas adicionais para rodar? Abraço.

                  • 9512fd15511b858a19127f17fd75fbf2?only path=false&size=50&d=404Paulo Henrique Junqueira Amorim(usuário não autenticado)
                    11 de Fevereiro de 2014, 15:52

                     

                    Ricardo,

                    É a mesma coisa, instala o Python e as dependências.

                    Abraço,

                    Paulo Amorim

                    • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                      9 de Maio de 2014, 9:26

                       

                      Oi de novo tinha esquecido do -i entrada de imagens mas agora o erro de novo:

                       ricardo@ricardo-laptop ~/Programas/ConversorimagensDICOM $ python img2dcm.py -i /TesteDICOMJPG -o /ConversorimagensDICOM -s 1.0 1.0 1.0 -t jpg -p "Maria do Socorro"
                      {'patient': 'Maria do Socorro', 'dtype': None, 'spacing': (1.0, 1.0, 1.0), 'institution': '', 'serie': 1, 'output': '/ConversorimagensDICOM', 'input': '/TesteDICOMJPG', 'pil': None, 'type': 'jpg', 'modality': 'CT'}
                      Traceback (most recent call last):
                        File "img2dcm.py", line 338, in <module>
                          main()
                        File "img2dcm.py", line 331, in main
                          os.makedirs(output)
                        File "/usr/lib/python2.7/os.py", line 157, in makedirs
                          mkdir(name, mode)
                      OSError: [Errno 13] Permission denied: '/ConversorimagensDICOM'

                      Aguardo a ajuda e um abraco.

                    • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                      11 de Fevereiro de 2014, 22:36

                       

                      Muito obrigado Paulo já lido e vou fazer isso sim e instalei esses dias o Linux Mint v16 e 64 bits vamos ver se rola esse script nele e já instalei tbm o InVesalius com sucesso. Abraço.

                    • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                      9 de Maio de 2014, 8:48

                       

                      Paulo bom dia,

                      Estou tendo hoje o momento de transformar os arquivos jpg para Dicom mas deu esse erro no Linux Mint:

                      ricardo@ricardo-laptop ~/Programas/ConversorimagensDICOM $ python img2dcm.py /TesteDICOMJPG -o /ConversorimagensDICOM /TesteDICOMJPG -s 1.0 1.0 1.0 -t jpg -p "Maria do Socorro"
                      {'patient': 'Maria do Socorro', 'dtype': None, 'spacing': (1.0, 1.0, 1.0), 'institution': '', 'serie': 1, 'output': '/ConversorimagensDICOM', 'input': None, 'pil': None, 'type': 'jpg', 'modality': 'CT'}
                      Traceback (most recent call last):
                        File "img2dcm.py", line 338, in <module>
                          main()
                        File "img2dcm.py", line 318, in main
                          if os.path.isfile(input_file):
                        File "/usr/lib/python2.7/genericpath.py", line 29, in isfile
                          st = os.stat(path)
                      TypeError: coercing to Unicode: need string or buffer, NoneType found

                      Sera que tem algum erro ai? Esta instalado o python, GDCM tbm mas se puder dar uma ajuda quero transformar para poder salvar em stl o arquivo no invesalius.

                      No aguardo e bom dia.

                       

                    • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                      9 de Maio de 2014, 9:33

                       

                      De novo, como sou muito leigo no linux entrei com senha de root e agora adivinha, agora so aparece isso:

                      ricardo-laptop ConversorimagensDICOM # python img2dcm.py -i /Programas /ConversorimagensDICOM /TesteDICOMJPG -o /Programas /ConversorimagensDICOM -s 1.0 1.0 1.0 -t jpg -p "Maria do Socorro"
                      {'patient': 'Maria do Socorro', 'dtype': None, 'spacing': (1.0, 1.0, 1.0), 'institution': '', 'serie': 1, 'output': '/Programas', 'input': '/Programas', 'pil': None, 'type': 'jpg', 'modality': 'CT'}

                      Uma luz para poder funcionar o conversor.

                       

                      Aguardo.

                      • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                        12 de Maio de 2014, 9:38

                         

                        Oi Ricardo, Aparentemente, na sua pasta "/Programas /ConversorimagensDICOM /TesteDICOMJPG" não há nenhuma imagem. Deve haver algum erro de digitação no nome da pasta, por isso deve estar ocorrendo esse erro. Perceba que entre o "ConversorimagensDICOM" e "/TesteDICOMJPG" há um espaço em branco, que acredito que não deveria estar ai.

                        • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                          12 de Maio de 2014, 10:00

                           

                          Oi Thiago vou ver isso já mas estou agora instalando o novo Ubuntu 14.04 LTS e ai fazer de novo as etapas e agora prestando mais atenção e agradeço de novo a ajuda e qualquer coisa se deu ou não deu certo aviso aqui. 

                    • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                      12 de Maio de 2014, 21:11

                       

                      Consegui transformar e no Invesalius trava e não abre as imagens numerei com 4 digitos do 0000 ao 0102.

                      Um arquivo com 103 imagens.

                       Tentando diminuir a dimensão e sem sucesso também.

                      Você têm alguma dica de nome do arquivo certo que faça a transformação correta?

                      Tamanho de imagem que o Invesalius abra corretamente?

                      Talvez o arquivo precise de alguma característica.

                      Fico no aguardo e mexendo aqui.

                       

                      Obrigado.

                       

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

                         

                        Oi Ricardo,

                        Todos os arquivos tem a mesma dimensão? Todos as imagens tem que ter a mesma dimensão. Acho que o erro pode estar ai. E sobre o tamanho das imagens, tenha em mente que quanto maior o tamanho, maior será a quantidade de memória RAM necessária.

                        • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                          13 de Maio de 2014, 12:25

                           

                          Oi Thiago, 

                          As imagens todas na mesma dimensão, hoje instalei o linux mint v16 e mesma coisa, agora no Xubuntu v14.04 e instalando os programas, está tudo nos conformes mas se tiver um passo a passo de como instalar o programa Invesalius no linux e suas dependências ia ajudar muito mesmo.

                          Vou diminuir as imagens por desencargo de consciência e ver no que dá.

                          Se tivesse tutoriais de como instalar o Invesalius no linux do zero e suas dependências ia ser ótimo, preciso fazer um stl para fazer um prototipo e o tempo passa e aja paciência.

                          Darei um retorno se não conseguir.

                          Abraço e bom dia.

                          • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
                            13 de Maio de 2014, 15:25

                             

                            Então, eu acho, as suas imagens são RGB. O InVesalius não trabalha com imagens RGB. Eu recomendo você utilizar o Imagemagick para converter as suas imagens de RGB para escala de cinza. Tente usar o seguinte comando:

                             convert pasta_imagens/* -set colorspace Gray -separate -average pasta_saida/%04d.png

                            Nesse comando você troca a pasta_imagens pela pasta onde estão as suas imagens e pasta_saida por a pasta onde você quer que as imagens resultantes sejam salvas. Após isso, você usa o img2dcm para transformar essas imagens em dicom.

                            Se você estiver usando o Ubuntu, é só usar dar duplo click no arquivo deb do InVesalius que ele vai instalar o InVesalius e suas dependências.

                            • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                              14 de Maio de 2014, 6:19

                               

                              Thiago grande informação essa, realmente estão em RGB e estou agora mudando elas e te passo se deu certo e muito obrigado pela paciência do novato.

                              Abraço e bom dia.

                            • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                              14 de Maio de 2014, 7:50

                               

                              Thiago até que enfim funcionou!!!! Imagens com mesmo tamanho em tons de cinza e transformadas em DICOM, quero dizer muito obrigado pela ajuda e agora vou poder seguir aqui com a peça para fazer e salvar o stl.

                              Abraço e bom dia.

                              • 09ad9f3fa3d73653d05a3489852c6deb?only path=false&size=50&d=404Ricardo de Sena(usuário não autenticado)
                                16 de Maio de 2014, 6:50

                                 

                                Só para constar baixei o manual e estou aprendendo muito com ele e aconselho a fazer o download dele esclarece muitas dúvidas de uso do software.

                        • 762735b44d18c4a0abdc0357084c5aee?only path=false&size=50&d=404Carolina Brum Medeiros(usuário não autenticado)
                          20 de Janeiro de 2015, 21:32

                           

                          Ola Thiago,

                           parabens pelo Inv.

                          estou usando teu script .py para conversao .jpg -> .dcm (Debian)

                          * todas imagens tem a mesma resolucao;

                          * descrevi todos atributos no teu codigo (paciente, serie, etc).

                          O Inv. fecha ao tentar importar as imagens.

                          snif snif.

                          alguma luz? 

                          obrigada 

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