Segmentation

Felipe Bacim de Araujo e Silva e Márcio Sarroglia Pinho

Download 

    Faça download da última versão aqui (atualizada em 14/08/2007 18:13). Após realizar o download do software, descompacte em um diretório qualquer. Aparecerão três arquivos; o executável e duas DLLs, necessárias para o funcionamento do software.

Introdução

  
    O objetivo deste software é possibilitar a reconstrução tridiensional de estruturas do corpo humano a partir de regiões segmentadas em séries de imagens médicas (chamadas de fatias ou slices) . Atualmente, o software possibilita a segmentação (automática e manual) de estruturas a partir de imagens DICOM e a geração de um arquivo a ser utilizado em sistemas de CAD (Computer Aided Design) que sejam capazes de realizar a reconstrução tridimensional a partir de seções planas, formando uma malha de polígonos.

    O sistema utiliza o conceito de camadas de segmentação, que chamamos de layers. Com a utilização destas camadas, torna-se possível gerar diversas segmentações para cada imagem (ex.: na segmentação dos pulmões, haveria um layer para cada pulmão, na segmentação de um dente, haveria um layer para cada dente).  

    Com a ferramenta é possível, adicionar, editar, remover os layers de cada uma das fatias, além de copiar os layers da fatia atual para as próximas fatias, em um processo chamado de propagação. Utilizando este método de propagação pode-se para poupar trabalho, já que editar um layer já existente é mais fácil que fazer uma nova segmentação.

    Os layers são identificados por nomes, e representam a segmentação de uma região na imagem. Com isso, é possível que haja mais de uma instância de um mesmo layer em uma fatia. Por exemplo, em uma imagem em que duas ou mais regiões pertencem ao mesmo dente, os layers que representam a segmentação devem ter o mesmo identificador. A figura abaixo ilustra esta situação.

    O software permite que os layers sejam alterados individualmente, através do conceito de layer ativo. Apenas este layer será alterado pelos comandos de edição (criar vértice, editar vértice(s), remover vértice), e é para ele que será enviado o resultado da segmentação automática.

    Como resultado da segmentação, o sistema era um conjunto de vértices e linhas, no formato OBJ, para que a reconstrução seja realizada.


Visão Geral do Processo de Segmentação

    Para utilizar o sistema, execute o arquivo UARMI.EXE. A primeira tela que irá aparecer é a de seleção do diretório no qual estão as imagens DICOM.

    Assim que o diretório for selecionado, o sistema será inicializado e a tela principal será apresentada.

    Após a inicialização do sistema, é possível gerar e editar layers para que a segmentação seja feita. Cada área diferente segmentada na imagem deve ser representada por um layer diferente.

    É possível mudar o nome e a cor de um layer, além de torná-lo visível ou invisível na janela de visualização (por padrão, todos os layers são visíveis). Importante: as opções de edição funcionarão APENAS com o layer ativo. Para ativar um layer a ser editado (com create, edit ou delete) clique a ComboBox com a lista de layers, no lado direito da tela.

 

    Para iniciar o processo de segmentação, você tem duas opções:
  • Utilizar a segmentação automática, definindo uma região a ser segmentada e editando os vértices criados automaticamente. Para realizar a segmentação de forma automática, utilize o modo Automatic Segmentation (menu Mode).
  • Fazer a segmentação de forma totalmente manual.
    Para criar mais vértices, ou realizar a segmentação manual, utilize o modo Create (menu Mode).

     Para editar os vértices já criados, utilize o modo Edit (menu Mode). Neste modo, você poderá mover e remover vértices, individualmente ou em grupo. Note que, quando este modo está ativo, os vértices mudam de cor para que sejam facilmente identificados. Também é possível remover o(s) vértice(s) selecionado(s), pressionando a tecla "Delete".

    Para editar outras fatias, gire a mouse wheel. Você pode repetir o processo descrito para todas as fatias, ou utilizar a opção Propagate (menu de layers). Este comando realiza a cópia de todos os layers (e não só do layer ativo) da fatia atual para as fatias seguintes. Por exemplo, se a fatia atual é a segunda, todas as fatias, a partir da terceira, receberão uma cópia dos layers da segunda fatia. Lembre-se, segmentações de um mesmo “objeto” devem ter o mesmo nome, seja na mesma fatia ou em fatias diferentes.

    Após terminar a segmentação de todas as fatias, você pode salvar os layers criados no formato OBJ, para que a reconstrução possa ser feita em um software de CAD. A qualquer momento você pode salvar/carregar as alterações feitas nos layers com os comandos “Save” e ”Load”.

    A seguir, uma seção descritiva, na qual são expostos todos os comandos disponíveis no software.

Interface do Sistema

    A interface do sistema é formada pelas por quatro áreas distintas:

  • Áreas de Menus;
  • Área de Visualização e Edição de Fatias;
  • Área de Modificação de Layers;
  • Área Informativa.

Área de Menus

  • Menu File
    • Opção Load: Carrega as informações de uma segmentação realizada previamente. Carrega arquivo MDF. Este arquivo contém informações dos layers, como cores, vértices e arestas. Atalho de teclado: Ctrl+O
    • Opção Save: Salva as informações da segmentação feita no programa em um arquivo MDF. Este arquivo contém informações dos layers, como cores, vértices e arestas. Atalho de teclado: Ctrl+S.
      • OBS: A opções Load e Save são operações independentes das imagens carregadas, possibilitado a criação de modelos padronizados para um certo tipo de estrutura anatômica, e sua posterior reutilização em conjuntos distintos de imagens.
    • Opção Export to .OBJ: Salva os layers no formato OBJ. Atalho de teclado: Ctrl+P
      • Formato utilizado para realizar a reconstrução poligonal da estrutura segmentada
      • Os arquivos OBJ serão criados com o nome dos layers
        • Ex.: Se desejo segmentar um dente "x", devo colocar o nome "x" em todos os layers relativos à segmentação deste dente
    • Opção Exit: Sai do programa - atalho de teclado: Ctrl+X
  • Menu Configure
    • Curve Detail: Abre uma nova janela para que seja definido o nível de detalhe das curvas feitas a partir dos vértices que o usuário informa - atalho de teclado: Ctrl+D
      • O valor informado indica o número de arestas criadas para fazer a curva entre cada dois vértices
      • Se você não quer que o sistema use curvas, indique ao sistema que quer apenas uma aresta
  • Menu Mode (veja uma explicação detalhada na seção Visualização da fatia e segmentação) 
    • Automatic Segmentation - atalho de teclado: Ctrl+A
    • Create - atalho de teclado: Ctrl+C
    • Edit - atalho de teclado: Ctrl+E
    • Delete - atalho de teclado: Ctrl+D

Área de Visualização e Edição de Fatia

  • Navegação Entre as Fatias 
    • Para navegar entre as fatias carregadas, gire a mouse wheel.
  • Modos de Operação
    • Antes de iniciar uma operação você deve selecionar o modo de operação do sistema:
      • Automatic Segmentation: Define que o sistema realizará uma segmentação inicial de forma automática
      • Create: Define que os cliques de mouse na janela indicarão novos vértices da segmentação
        • Possui dois estados: creating e waiting. O estado creating é utilizado quando o usuário está criando vértices no layer atual. Waiting é utilizado para indicar que o usuário “terminou” a segmentação no layer atual/
        • Quando clicar com o botão esquerdo em um ponto da tela neste modo, será criado um vértice (neste ponto) que será conectado ao último vértice do layer ativo. A utilização deste comando faz com que o estado mantenha-se como creating (se estiver no estado waiting, o sistema mudará automaticamente para creating).
        • Quando desejar concluir a segmentação de um layer, clique com o botão direito. A utilização deste comando faz com que o sistema passe para o estado waiting.
      • Edit : Modo de edição dos vértices, com dois modos:
        • Edição Simples: Clique no vértice que deseja editar. Uma vez selecionado o vértice, você pode deslocá-lo vértice apenas segurando o botão esquerdo do mouse enquanto move o mouse. 
          • Para realizar o comando Split (leia sobre o seu funcionamento na seção da Área de Modificação de Layers), você deve selecionar um segundo vértice, clicando sobre o vértice com a tecla Ctrl pressionada.
        • Edição Múltipla: Selecione mais de um vértice clicando em um ponto da imagem que não contém um vértice e, mantendo o botão pressionado, arraste o mouse, definindo um retângulo de seleção. A operação seleciona todos os vértices que estiverem no interior deste retângulo. Para mover os vértices selecionados, clique com o botão esquerdo do mouse, em algum ponto do retângulo de seleção e, mantendo o botão pressionado, arraste o mouse para o local desejado. NÃO SERVE PARA REALIZAR A OPERAÇÃO DE SPLIT.
      • Delete: Define que os cliques de mouse nos vértices irão removê-los do layer.
  • Reconfiguração do janelamento das imagens
    • Clique com o botão direito em qualquer lugar da imagem e arraste o mouse. Os parâmetros do janelamento são atualizados e mostrados na tela, e as imagens são atualizadas assim que o botão direito for solto. O movimento do mouse na direção vertical aumenta ou diminui o Window Width, enquanto que o movimento na horizontal altera o Window Length. ATENÇÃO: No modo 'create' este comando só é válido se o sistema estiver no estado waiting (veja mais detalhes na descrição do modo create)! Nos outros modos (edit e remove) não há restrições de uso.
  • Operações de Zoom e Pan
    • Para aumentar ou diminuir o nível de Zoom pressione a tecla ctrl e utilize a mouse wheel.
    • Para modificar a região que está sendo visualizada (operação de Pan) pressione o terceiro botão do mouse (o botão da mouse wheel), mova o mouse para cima/baixo/esquerda/direita.


Área de Modificação de Layers

  • Por padrão, todas as fatias carregadas já possuem um layer.
  • Para selecionar o layer que será editado (com create, edit ou delete) use a ComboBox com a lista dos layers existentes, no lado direito da tela.
  • As opções de edição funcionarão APENAS com o layer selecionado.
  • Você pode alterar o nome dos layers, com duplo clique na linha que indica o nome na tabela de layers.
  • Você pode alterar a cor na qual o layer será desenhado, com duplo clique na célula que indica a cor na tabela de layers.
  • Você pode tornar um layer visível/invisível utilizando a CheckBox da tabela de layers. Por padrão, todos os layers são visíveis.
  • Os Comandos relativos aos layers (menu a direita) são:
    • Add: Cria um novo layer para que um órgão ou estrutura possa ser segmentado.
    • Remove: Remove o layer ativo, indicado pela ComboBox.
    • Propagate: Propaga os vértices de todos os layers (não apenas no layer ativo) da fatia atual pelas próximas fatias.
    • Split: A partir da seleção de dois vértices intermediários, divide o layer atual em dois, criando um novo layer. Esta opção está desabilitada por padrão. Para que ela seja habilitada, é preciso selecionar dois vértices. A figura abaixo representa os passos necessários para a realização da operação. Para maiores informações, leia novamente a sub-seção Edit da seção visualização da fatia e segmentação.

Área Informativa

  • Quatro parâmetros são impressos nesta parte da tela
    • Window Length: referente ao janelamento utilizado para exibir a imagem.
    • Window Width: referente ao janelamento utilizado para exibir a imagem.
    • Slice Number: número da fatia visualizada.
    • Mode: indica o modo de edição atual