Ir para o conteúdo

Big Image

Observação

Este módulo está disponível apenas na versão privada do GeoSlicer. Saiba mais clicando aqui.

O módulo Big Image é um kit de ferramentas para trabalhar com imagens grandes usando memória limitada. Visualize fatias, corte, reduza a resolução e converta o tipo sem carregar a imagem inteira na RAM. Atualmente, suporta o carregamento de imagens NetCDF de vários arquivos do sistema de arquivos local ou de imagens NetCDF MicroCT do módulo BIAEP Browser.

Carregamento

Siga os passos abaixo para carregar, pré-visualizar e reduzir uma imagem de grande porte.

Passo 1: Carregar o Conjunto de Dados NetCDF

  1. Na seção Load Multi-file NetCDF Image, clique no botão ao lado de Input directory para selecionar a pasta que contém o(s) arquivo(s) NetCDF (.nc).
  2. Uma vez que um diretório válido é selecionado, o botão Load dataset será habilitado.
  3. Clique em Load dataset. Isso irá analisar os metadados dos arquivos e criar imagens virtuais na hierarquia de dados do GeoSlicer. Esta operação é rápida e não consome muita memória, pois os dados da imagem ainda não são carregados.

Observação

Uma imagem virtual é uma imagem no projeto GeoSlicer que aponta para o local onde uma imagem grande está armazenada. Ao salvar o projeto, apenas o endereço da imagem é armazenado na pasta do projeto.


Figura 1
Figura 1: Seção "Load Multi-file NetCDF Image" com o diretório selecionado e o botão "Load dataset" habilitado.

Passo 2: Selecionar e Inspecionar a Imagem

  1. Na seção Data, clique no seletor Image para ver a lista de imagens disponíveis no conjunto de dados carregado. Selecione a imagem que deseja inspecionar.
  2. Após a seleção, os campos Shape (XYZ) e Data type serão preenchidos com as informações da imagem selecionada.


Figura 2
Figura 2: Seção "Data" mostrando a seleção de uma imagem e os campos de informação preenchidos.

Passo 3: Pré-visualizar Fatias da Imagem

  1. Com uma imagem selecionada, clique no botão Preview image para entrar no modo de pré-visualização.
  2. A seção Slice Preview aparecerá. Use os sliders Z, Y e X para navegar pelas fatias da imagem nos visualizadores 2D. Apenas a fatia selecionada é carregada do disco, permitindo a exploração de imagens muito grandes.
  3. Para sair do modo de pré-visualização, clique em Stop preview.


Figura 3
Figura 3: Seção "Slice Preview" e os visualizadores 2D mostrando uma fatia da imagem de grande porte.

Observação

Para imagens NetCDF salvas sem chunking, a visualização pelo slider Z (plano YX) costuma ser a mais rápida, enquanto os outros eixos demoram mais. Para imagens salvas com chunking, é possível visualizar rapidamente por qualquer eixo.

Dica

No módulo Explorer, você pode iniciar a pré-visualização de uma imagem virtual já carregada ativando o ícone de olho dela. Local do ícone de olho

Passo 4: Configurar a Redução da Imagem

Para carregar uma versão menor da imagem na memória, configure as opções na seção Reduce Image.

  • Crop: Defina uma região de interesse (ROI) para cortar a imagem. Especifique a coordenada inicial em Crop origin e o tamanho do corte em Crop size para cada eixo (X, Y, Z). Você pode definir o corte interagindo com o ROI no visualizador 3D, ou definindo os valores diretamente. Use o botão Reset crop region para redefinir a área para a imagem inteira.
  • Downsample: Reduza a resolução da imagem definindo um Downsample factor. Um fator de 2, por exemplo, reduzirá o tamanho da imagem em 8 vezes (2³).
  • Numeric type conversion: Converta o tipo numérico da imagem para um que consuma menos memória (por exemplo, uint8).
    • Se a caixa Map min and max values... estiver marcada, os valores da imagem serão remapeados para o novo intervalo de tipo, preservando a faixa dinâmica.
    • Se desmarcada, os valores fora do novo intervalo serão limitados.


Figura 4
Figura 4: Seção "Reduce Image" com as opções de Crop, Downsample e Type Conversion destacadas.

Passo 5: Carregar a Imagem Reduzida

  1. Na seção Output, verifique o tamanho estimado da imagem final em Output size.
  2. Defina um nome para o novo volume em Output name.
  3. Clique em Load reduced image. As operações de redução (corte, reamostragem e conversão de tipo) serão executadas e o volume resultante será carregado no GeoSlicer.


Figura 5
Figura 5: Seção "Output" com o nome de saída e o botão "Load reduced image" destacados.

Com a imagem reduzida gerada, você pode visualizá-la habilitando a visualização na aba Explorer.

Figura 6
Figura 6: Visualização da imagem 3D da versão reduzida.

Polynomial Shading Correction

O módulo Polynomial Shading Correction (Big Image) é projetado para corrigir artefatos de sombreamento ou iluminação irregular em imagens de grande volume, que não podem ser carregadas inteiramente na memória. Ele funciona ajustando um polinômio ao fundo da imagem e normalizando a iluminação, de forma similar ao filtro Polynomial Shading Correction, mas com otimizações para processamento fora do núcleo (out-of-core).

Este módulo opera sobre arquivos NetCDF (.nc) e salva o resultado em um novo arquivo, sendo ideal para pipelines de processamento de dados massivos.

Princípio de Funcionamento

Este módulo adapta o algoritmo de correção de sombreamento polinomial para imagens que excedem a capacidade da memória RAM. As principais diferenças e otimizações são:

  1. Processamento em Blocos (Out-of-Core): A imagem é dividida e processada em blocos (chunks), garantindo que apenas uma parte do volume seja carregada na memória a qualquer momento.
  2. Amostragem de Pontos: Para ajustar o polinômio em cada fatia, em vez de usar todos os pixels da máscara de sombreamento, o módulo seleciona aleatoriamente um número definido de pontos (Number of fitting points). Isso acelera drasticamente o cálculo do ajuste sem comprometer significativamente a precisão da correção do sombreamento.
  3. Agrupamento de Fatias (Slice Grouping): Para otimizar ainda mais o processo, o ajuste do polinômio é calculado na fatia central de um grupo de fatias (Slice group size). A função de correção resultante é então aplicada a todas as fatias dentro daquele grupo.

Para uma descrição detalhada do algoritmo base de correção de sombreamento, consulte o manual do filtro Polynomial Shading Correction.

Parâmetros

  • Input image: A imagem de grande volume (em formato NetCDF) a ser corrigida.
  • Input mask: Uma máscara que define a região de interesse. A área fora desta máscara será zerada na imagem de saída.
  • Input shading mask: A máscara que indica as áreas de fundo (ou com intensidade uniforme) a serem usadas para a amostragem de pontos e ajuste do polinômio.
  • Slice group size: Define o número de fatias em um grupo. A correção é calculada na fatia central e aplicada a todo o grupo. Um valor maior acelera o processo, mas pode não capturar variações rápidas de sombreamento ao longo do eixo das fatias.
  • Number of fitting points: O número de pontos a serem amostrados aleatoriamente da Input shading mask para realizar o ajuste do polinômio.
  • Output Path: O caminho do arquivo de saída no formato NetCDF (.nc) onde a imagem corrigida será salva.

Casos de Uso

Este módulo é ideal para:

  • Pré-processamento de micro-tomografias computadorizadas (µCT) de alta resolução e grande escala.
  • Correção de iluminação em mosaicos de imagens ou qualquer imagem volumosa que não caiba na memória.
  • Normalização de gradientes de iluminação em grandes datasets antes da segmentação ou análise quantitativa.

Boundary Removal

Este módulo remove as bordas de uma segmentação em uma imagem grande (formato NetCDF). Para mais informações sobre a versão interativa desta ferramenta, veja o efeito Remoção de Borda no Segment Editor.

Painéis e sua utilização

Entrada

  • Imagem de Entrada: Selecione a imagem de entrada no formato NetCDF.
  • Segmentação: Selecione o nó de segmentação relacionado ao conjunto de dados.

Parâmetros

  • Ajuste de limiar: Defina o intervalo de limiar para a detecção de bordas.

Saída

  • Caminho de Saída: Selecione o caminho de saída para a imagem resultante no formato .nc.

Botão Aplicar

  • Aplicar: Inicia o processo de remoção de bordas.

Expand Segments

Este módulo expande os segmentos em uma segmentação para preencher todo o volume de uma imagem grande (formato NetCDF). Para mais informações sobre a versão interativa desta ferramenta, veja o efeito Expandir Segmentos no Segment Editor.

Painéis e sua utilização

Entrada

  • Segmentação: Selecione o nó de segmentação relacionado ao conjunto de dados.

Saída

  • Caminho de Saída: Selecione o caminho de saída para a imagem resultante no formato .nc.

Botão Aplicar

  • Aplicar: Inicia o processo de expansão dos segmentos.

Multiple Threshold

Esse módulo é utilizado para segmentar uma amostra carregada através do modo Big Image a partir de uma segmentação manual por Multiple Threshold.

Para utilizar esse recurso, primeiro carregue a imagem reduzida a partir do módulo Large Image Loader. Depois de carregada, navegue até o módulo em Manual Segmentation e clique no ícone Multiple threshold. Após selecionar os thresholds e realizar a segmentação na imagem reduzida, clique em Apply to full volume, isso deve redirecionar para a página do presente módulo, onde será escolhido o caminho de saída para salvar o resultado.

Multiple Threshold Big Image


Virtual Segmentation Flow

Fluxo para o obtenção de um mapa de porosidade a partir de um volume escalar.

%%{
  init: {
    'themeVariables': {
      'lineColor': '#c4c4c4'
    }
  }
}%%
flowchart LR
    Iniciar --> Importar
    Importar --> Segmentacao
    Segmentacao --> Modelagem
    Modelagem --> Resultados

    click Segmentacao "../../Segmentation/segmentation.html" "teste de imagem"
    style Iniciar fill:#808080,stroke:#333,stroke-width:1px,color:#fff;
    style Importar fill:#6d8873,stroke:#333,stroke-width:1px,color:#fff;
    style Segmentacao fill:#5a9b87,stroke:#333,stroke-width:1px,color:#fff;
    style Modelagem fill:#45ae97,stroke:#333,stroke-width:1px,color:#fff;
    style Resultados fill:#2ea67e,stroke:#333,stroke-width:1px,color:#fff;

    Segmentacao["Segmentação"]
graph LR
    hello --> world
    world --> again
    again --> hello
  1. Inicie o Geoslicer no ambiente Volumes a partir da interface do aplicativo.

  2. Selecione o volume de entrada clicando em "Escolher pasta" ou "Escolher arquivo" e escolha os dados de importação desejados entre as opções disponíveis. Sugerimos testar primeiro os parâmetros padrão.

  3. Selecione o volume de entrada clicando em "Input:" Ajuste os parâmetros para diferentes efeitos de segmentação, como "Múltiplos Limiares," "Remoção de Fronteira," e "Expandir Segmentos." Ajuste as configurações para obter os resultados de segmentação desejados, usando o feedback da interface e as ferramentas de visualização.

  4. Revise e refine os dados segmentados. Ajuste os limites da segmentação, mescle ou divida segmentos, e aplique outras modificações para aprimorar o modelo de porosidade usando as ferramentas fornecidas.

  5. Salve o mapa de porosidade ou exporte o volume com as tabelas de parametros.

%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {
            'git0': '#808080',
            'git1': '#6d8873',
            'git2': '#5a9b87',
            'git3': '#45ae97',
            'git4': '#2ea67e',
            'git5': '#ffff00',
            'git6': '#ff00ff',
            'git7': '#00ffff',
            'gitBranchLabel0': '#ffffff',
            'gitBranchLabel1': '#ffffff',
            'gitBranchLabel2': '#ffffff',
            'gitBranchLabel3': '#ffffff',
            'gitBranchLabel4': '#ffffff',
            'gitBranchLabel5': '#ffffff',
            'gitBranchLabel6': '#ffffff',
            'gitBranchLabel7': '#ffffff',
            'gitBranchLabel8': '#ffffff',
            'gitBranchLabel9': '#ffffff',
            'commitLabelColor': '#afafaf',
              'commitLabelBackground': '#0000',
              'commitLabelFontSize': '13px'
       }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'Inicio'}} }%%
      gitGraph LR:
        commit id:"Inicio"
        commit id:"Volumes  ."
        branch "Importar"
        commit id:"Aba de Dados"
        commit id:"Aba de Importação"
        commit id:"Selecionar Arquivo"
        commit id:"Parâmetros"
        commit id:"Carregar  ."
        branch "Segmentação"
        commit id:"Aba de Segmentação"
        commit id:"Adicionar novo nó de segmentação"
        commit id:"Criar pelo menos 4 segmentos"
        commit id:"Adicionar ROI  ."
        branch Modelagem
        commit id:"Aba de Modelagem"
        commit id:"Segmentação"
        commit id:"Selecionar volume"
        commit id:"Selecionar segmentação"
        commit id:"Aplicar  ."
        branch Resultados
        commit id:"Gráficos"
        commit id:"Imagens"
        commit id:"Tabelas"
        commit id:"Relatórios"

Inicio

Inicie o Geoslicer no ambiente MicroCT a partir da interface do aplicativo.

Importar(TODO)

Selecione o volume de entrada clicando em "Escolher pasta" ou "Escolher arquivo" e escolha os dados de importação desejados entre as opções disponíveis. Sugerimos testar primeiro os parâmetros padrão.

Segmentação

Selecione o volume de entrada clicando em "Entrada:" Ajuste os parâmetros para diferentes efeitos de segmentação, como:

  1. Múltiplos Limiares(TODO)
  2. Remoção de Fronteira(TODO)
  3. Expandir Segmentos(TODO)

Ajuste as configurações para obter os resultados de segmentação desejados, usando o feedback da interface e as ferramentas de visualização.

Modelagem(TODO)

Revise e refine os dados segmentados. Ajuste os limites da segmentação, mescle ou divida segmentos, e aplique outras modificações para aprimorar o modelo de segmentação usando as ferramentas fornecidas.(TODO)

Resultados(TODO)

Salve o projeto ou exporte o volume segmentado. Os resultados podem ser exibidos como:

  1. Imagem(Screenshot)(TODO)
  2. Graficos(Charts)(TODO)
  3. Servidos atraves de Relatórios (Streamlit)(TODO)