Skip to content
Vinicius0300 edited this page Dec 1, 2025 · 5 revisions

VideoMLEditor

1. Breve Descrição

O VideoML Editor é um software de análise de vídeos médicos criado para auxiliar médicos e fonoaudiólogos na avaliação de exames de fluoroscopia do tipo VFSS utilizando o método ASPEKT. A ferramenta permite carregar vídeos nos formatos AVI e MP4, navegar frame a frame e criar anotações estruturadas diretamente sobre o vídeo. Além disso, o software permite a criação e manipulação de pontos, retas, seleções livres e pincéis, o registro visual de eventos clínicos relevantes, a exportação de máscaras e a organização hierárquica de frames de interesse e geometrias associadas.

O programa foi concebido como uma ferramenta utilitária em desenvolvimento, voltada principalmente para profissionais de saúde que realizam análises temporais e espaciais durante a avaliação clínica da deglutição. Ele também atende pesquisadores da área de saúde que trabalham com estudos quantitativos da deglutição e estudantes de cursos relacionados que necessitam realizar anotações sistemáticas em vídeos médicos para fins de aprendizagem ou pesquisa.

Trata-se de uma prova de conceito parcial, construída para demonstrar a viabilidade de integrar em um único ambiente o player de vídeo, as ferramentas de anotação e a estrutura de gerenciamento de objetos. Algumas funcionalidades ainda estão em expansão e o desempenho pode variar conforme o tamanho do vídeo e a complexidade das anotações. Usuários devem estar cientes de que esta é uma versão em desenvolvimento contínuo e que ainda não passou por validação clínica formal.

2. Visão de Projeto

Player de vídeo

Cenário 1 – Positivo

Rayane precisa examinar um exame de videofluoroscopia para preparar uma discussão de caso. Ela abre o VideoML Editor, carrega o vídeo do paciente e usa a barra de progresso para navegar até a fase da deglutição. Quando necessário, alterna entre play e pause enquanto observa o movimento geral. Quando precisa revisar um evento específico, pausa o vídeo e utiliza os botões de avançar e retroceder frame para localizar o momento em que o evento ocorre. Ao identificar o momento exato que deseja destacar, salva o frame de interesse. Por fim, Rayane fecha o video player e realiza suas anotações sobre o caso.

Cenário 2 - Positivo

Lucas, estudante de fonoaudiologia, precisa realizar a análise de um exame de VFSS para um trabalho do mestrado. Ele abre o VideoML Editor e começa a analisar um vídeo de baixa duração. Durante sua tentativa de localização do osso hióide, o vídeo chega ao fim e recomeça. Lucas então desabilita a função de loop e arrasta a timeline até o final do vídeo para avaliar um momento com mais calma. Utilizando as funções arrastar e retroceder frames, Lucas consegue localizar o osso hióide com facilidade e marca o frame de interesse. Após concluir a análise, ele fecha o video player.

Cenário 3 - Negativo

Lucas está revisando um exame e deseja abrir um segundo vídeo para comparar eventos lado a lado. Ele tenta carregar um novo arquivo enquanto o player já está ativo, mas o VideoML Editor substitui o vídeo anterior em vez de abrir um novo. Como o software não permite múltiplas abas ou janelas independentes, Lucas fica limitado a ver um vídeo por vez e não consegue fazer a comparação direta naquele momento.

Cenário 4 - Negativo

Marina tenta carregar no VideoML Editor uma imagem JPEG enviada por um colega para demonstrar um achado clínico. Ela arrasta o arquivo para o software, mas o sistema apenas exibe uma mensagem de que o formato não é suportado. Após uma segunda tentativa sem sucesso, ela percebe que o programa aceita apenas vídeos AVI e MP4 e decide buscar o exame completo em vídeo.

Ferramentas de Anotação

Cenário 1 – Positivo

Andressa, fonoaudióloga do INCA, precisa calcular a distância entre as vértebras C2 e C4 para utilizá-la como escalar anatômico no método ASPEKT. Ela realiza o upload do vídeo, navega até o frame de interesse e utiliza a ferramenta de desenho para marcar os dois pontos. O sistema exibe automaticamente a distância entre eles, permitindo que ela siga com as demais medições do exame de videofluoroscopia.

Cenário 2 – Positivo

Após marcar C2 e C4, uma médica pesquisadora deve obter a reta perpendicular à linha que conecta essas vértebras. Ela faz o upload do vídeo, seleciona o frame desejado e marca C2 e C4. A partir dessa reta base, o sistema calcula automaticamente a reta perpendicular e permite a seleção da área de interesse, possibilitando a análise da região onde podem permanecer restos de bolo alimentar após a deglutição.

Cenário 3 – Negativo

Um médico segmenta manualmente regiões do bolo alimentar que não foram deglutidas em um exame VFSS. Após realizar o upload do vídeo, navegar até o frame e desenhar as regiões de interesse, ele deseja obter a área ocupada pelo bolo residual. Entretanto, ele percebe que o sistema não disponibiliza a funcionalidade de cálculo da área segmentada, impedindo-o de concluir sua análise.

Cenário 4 – Negativo

Um especialista em exames de videofluoroscopia está segmentando a área laríngea em um frame específico. Durante o processo, ele identifica um pequeno erro e tenta corrigi-lo. No entanto, ao tentar editar a máscara desenhada, percebe que o sistema não oferece uma ferramenta para apagar apenas parte da segmentação: a única opção disponível é remover toda a máscara do frame e refazer o processo.

Documentação Técnica do Projeto

Esta seção da Wiki se destina a pessoas que queiram reutilizar, total ou parcialmente, o seu programa. Portanto, ofereça todas as informações necessárias. Os três itens a seguir são os mais utilizados. Escolha com o(a) orientador(a) do projeto quais destes itens devem ser incluídos. Para cada item incluído, crie uma seção específica.

  • Especificação de requisitos funcionais e não-funcionais do sotware
  • Descrição ou modelo de arquitetura, dados, semântica ou outra dimensão relevante do software
  • Descrição ou modelo funcional do software
  • Sobre o código (detalhes da linguagem ou da técnica de programação utilizada, da estratégia de comentários em linha, das diretivas de compilação, se houver, etc.)

3. Documentação Técnica do Projeto

Especificação de Requisitos Funcionais e Não Funcionais

1. Requisitos Funcionais (RF)

1.1 Carregamento e Gerenciamento de Vídeos
  • RF01. O sistema deve permitir carregar arquivos de vídeo nos formatos AVI e MP4.
  • RF02. O usuário deve poder carregar vídeos através de um botão para carregar vídeo.
  • RF03. O usuário deve poder carregar vídeos via drag and drop na janela principal.
  • RF04. O sistema deve exibir uma mensagem de erro quando um formato não suportado for carregado.
  • RF05. O sistema deve permitir apenas um vídeo carregado por vez.
1.2 Player de Vídeo
  • RF06. O sistema deve oferecer botões de play e pause.
  • RF07. O sistema deve permitir avançar um frame por vez.
  • RF08. O sistema deve permitir retroceder um frame por vez.
  • RF09. O sistema deve fornecer uma timeline interativa para navegação rápida.
  • RF10. O sistema deve permitir navegar diretamente para qualquer frame de interesse salvo.
  • RF11. O sistema deve exibir o número do frame atual e a duração total do vídeo.
  • RF12. O sistema deve permitir habilitar/desabilitar o loop do vídeo.
  • RF13. O sistema deve fornecer atalhos de teclado para navegação:
    • Barra de espaço: play/pause
    • Seta direita: avançar frame
    • Seta esquerda: retroceder frame
1.3 Gestão de Frames de Interesse
  • RF14. O usuário deve poder criar um frame de interesse a partir do frame atual.
  • RF15. O usuário deve poder renomear frames de interesse.
  • RF16. O usuário deve poder deletar frames de interesse.
  • RF17. O usuário deve ver todos os frames de interesse organizados em uma lista ou árvore hierárquica.
  • RF18. Ao clicar em um frame de interesse na lista, o player deve navegar para o frame correspondente no vídeo.
1.4 Ferramentas de Anotação
1.4.1 Criação de Geometrias
  • RF19. O sistema deve permitir criar pontos.
  • RF20. O sistema deve permitir criar retas.
  • RF21. O sistema deve permitir criar seleções livres (lasso).
  • RF22. O sistema deve permitir pintar com brush para adicionar ou remover área de uma seleção livre.
  • RF23. O sistema deve permitir criar ângulos entre três pontos.
  • RF24. O sistema deve salvar geometrias associadas a um frame de interesse.
1.4.2 Manipulação de Geometrias
  • RF25. O usuário deve poder deletar geometrias.
  • RF26. O usuário deve poder renomear geometrias.
  • RF27. O usuário deve poder copiar geometrias entre frames de interesse.
1.4.3 Medidas e Exportação
  • RF28. O sistema deve calcular medidas de distância para retas.
  • RF29. O sistema deve exportar seleções livres e brush como máscaras binárias (.png).
1.5 Zoom e Pan
  • RF30. O sistema deve permitir ampliar regiões específicas do vídeo (zoom in).
  • RF31. O sistema deve permitir reduzir o zoom (zoom out).
  • RF32. O sistema deve permitir mover a área visualizada quando houver zoom (pan).
  • RF33. O sistema deve permitir uso de scroll do mouse para zoom, caso habilitado.

2. Requisitos Não Funcionais (RNF)

2.1 Usabilidade
  • RNF01. Os principais comandos do player devem ser acessíveis por atalhos de teclado.
2.2 Desempenho
  • RNF02. O sistema deve carregar vídeos comuns (até 100 MB) em poucos segundos.
  • RNF03. A navegação frame a frame deve ter latência (<20ms).
2.3 Compatibilidade
  • RNF04. O sistema deve funcionar com arquivos AVI e MP4 utilizando codecs amplamente utilizados.
  • RNF05. O software deve funcionar nos sistemas operacionais Windows, macOS e Linux.
2.4 Confiabilidade
  • RNF05. O sistema deve apresentar mensagens de erro claras quando encontrar formatos não suportados.
  • RNF07. O sistema deve impedir operações inválidas, como abrir múltiplos vídeos simultaneamente.
  • RNF08. O sistema deve preservar o estado interno das geometrias ao mudar de frame de interesse.
2.5 Segurança
  • RNF09. O sistema não deve enviar dados do usuário para servidores externos sem consentimento.
  • RNF10. Dados exportados devem permanecer locais, salvo ação explícita do usuário.

4. Manual de Utilização para Usuários Contemplados

Player de Vídeo

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para carregar um vídeo faça:

    >>> Método 1 - Drag and Drop:
        Passo 1: Localize o arquivo de vídeo no explorador de arquivos do seu sistema
        Passo 2: Clique e segure o arquivo de vídeo
        Passo 3: Arraste o arquivo para a janela do ML Video Editor
        Passo 4: Solte o arquivo sobre a área central do software
        Passo 5: O vídeo será carregado e exibido automaticamente

    >>> Método 2 - Menu Arquivo:  
        Passo 1: Clique em "Abrir arquivo".
        Passo 2: Na janela de diálogo, navegue até a pasta do vídeo
        Passo 3: Selecione o arquivo de vídeo desejado
        Passo 4: Clique em "Abrir"
        Passo 5: O vídeo será carregado e exibido automaticamente

    Quando utilizar cada método:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    O Método 1 (Drag and Drop) é mais rápido para arquivos já visíveis.
    O Método 2 (Menu) é preferível quando o arquivo está em pasta distante.

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o vídeo não carregar e aparecer mensagem de erro
        {
        É porque: 
            O formato do arquivo pode não ser suportado ou o arquivo está corrompido.
        Então faça: 
            Verifique se o arquivo é AVI ou MP4. Tente reproduzir o vídeo
            em outro player para confirmar que não está corrompido.
        }
  
    Se o vídeo ficar com tela preta
        {
        É porque: 
            Ou o codec do vídeo pode não ser suportado pelo sistema.
            Ou o usuário pode ter tentado mexer na timeline antes do carregamento completo.
            
        Então faça:
            Recarregue o vídeo e aguarde o carregamento completo antes de interagir.
            Antes de interagir, clique primeiro no botão Play para garantir que o vídeo está pronto.
        }
  
    Se o drag and drop não funcionar
        {
        É porque: 
            O arquivo pode estar sendo arrastado para uma área incorreta
            ou há restrições do sistema operacional.
        Então faça: 
            Use o Método 2 (menu Arquivo > Abrir) para carregar o vídeo
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Para navegar no vídeo faça:

    Método 1 - Timeline:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Localize a barra de timeline na parte inferior da janela
        Passo 3: Clique em qualquer ponto da timeline para ir diretamente àquela posição
            ou Clique e arraste o indicador de posição para navegar continuamente

    Método 2 - Botões Frame a Frame:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Clique no botão "◀" para retroceder um frame
        Passo 3: Clique no botão "▶" para avançar um frame
        Passo 4: Repita conforme necessário

    Método 3 - Play/Pause:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Clique no botão Play/Pause (▶/⏸) para iniciar a reprodução do vídeo

    > Como alternativa é possível utilizar os atalhos de teclado:  
        - Barra de espaço: Play/Pause
        - Seta Esquerda (←): Retrocede um frame
        - Seta Direita (→): Avança um frame

    Quando utilizar cada método:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    O método da timeline é ideal para navegar rapidamente por grandes trechos do vídeo.
    Já os botões frame a frame são indicados para análise de momentos específicos.
    O botão de play/pause é útil para assistir ao vídeo em tempo real.

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Se a timeline ou os botões não responderem
        {
        É porque: 
            Nenhum vídeo está carregado ou o vídeo ainda está carregando.
        Então faça: 
            Aguarde o carregamento completo do vídeo.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para usar zoom no vídeo faça:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Posicione o cursor do mouse sobre a área do vídeo
        Passo 3: Role o scroll do mouse para CIMA para ampliar (zoom in)
        Passo 4: Role o scroll do mouse para BAIXO para reduzir (zoom out)
        Passo 5: O zoom é centralizado na posição do cursor


    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se O zoom não funcionar com o scroll do mouse.
        {
        É porque: 
            O cursor pode estar fora da área do vídeo ou o foco está
            em outro elemento da interface.
        Então faça: 
            Clique na área do vídeo primeiro, depois use o scroll.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para usar pan (mover a visualização) no vídeo faça:

    Método 1 - Ferramenta Pan (Mão) para Mover a Visualização:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Clique o botão de play para iniciar a reprodução do vídeo
        Passo 3: Pause o vídeo no frame desejado
        Passo 4: Role o scroll do mouse para cima para ampliar (zoom in)
        Passo 5: Clique no botão "✋" (Mão/Hand) na barra de ferramentas
        Passo 6: O cursor mudará para uma mão aberta, clique e arraste sobre o vídeo para mover a visualização.

    Método 2 - Barras de Rolagem para Mover a Visualização:
        Passo 1: Carregue o vídeo desejado
        Passo 2: Clique o botão de play para iniciar a reprodução do vídeo
        Passo 3: Pause o vídeo no frame desejado
        Passo 4: Role o scroll do mouse para cima para ampliar (zoom in)
        Passo 5: Utilize a barra de rolagem horizontal e vertical ao redor do vídeo para mover a visualização.

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se a ferramenta Pan não arrastar o vídeo ou as barras de rolagem não funcionarem:
        {
        É porque: 
            O vídeo pode estar no zoom padrão onde já cabe na tela, 
            não havendo área oculta para revelar.
        Então faça: 
            Primeiro amplie o vídeo com zoom, depois use o Pan.
        }
}

Ferramentas de Anotação

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para fazer a marcação de pontos faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado usando o slider ou as setas do teclado
        Passo 3: Clique no botão "●" (Ponto) na barra de ferramentas
        Passo 4: Clique no local desejado do vídeo para criar o ponto
        Passo 5: O ponto será adicionado e aparecerá na árvore de frames à esquerda

    >>> Para criar múltiplos pontos, mantenha a ferramenta ativa e continue clicando.

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o clique não criar um ponto
        {
        É porque: 
            O clique foi feito fora dos limites do vídeo. Clique dentro da área do vídeo.
        }
  
    Se o ponto não aparecer visível
        {
        Então faça: 
            Clique com botão direito no botão "●" e aumente o tamanho do ponto.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para fazer marcação de reta faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado
        Passo 3: Clique no botão "╱" (Reta) na barra de ferramentas
        Passo 4: Clique no ponto inicial da reta
        Passo 5: Clique no ponto final da reta (ou arraste do início ao fim)

    >>> Alternativa 1 (Clique-Clique): Clique no ponto inicial, mova o mouse, clique no ponto final.
    >>> Alternativa 2 (Arrastar): Clique e segure no ponto inicial, arraste até o ponto final, solte.
    >>> A Alternativa 2 é mais rápida para retas curtas. A Alternativa 1 oferece mais precisão, porém
    >>> o usuário não possui o feedback do que está fazendo, só enxerga o resultado após clicar nos 
    >>> dois pontos.

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se a reta ficar muito curta ao usar arrastar
        {
        É porque: 
            O sistema interpreta arrastes curtos (<5 pixels) como clique simples.
        Então faça: 
            Use o modo clique-clique para retas curtas.
        }
  
    Se a reta ultrapassar os limites do vídeo
        {
        É porque: 
            O sistema faz "clamp" automático. O ponto final será ajustado para a borda do vídeo.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para fazer marcação de ângulo faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado
        Passo 3: Clique no botão "∠" (Ângulo) na barra de ferramentas
        Passo 4: Clique no primeiro ponto (P1 - extremidade do primeiro segmento)
        Passo 5: Clique no segundo ponto (P2 - vértice do ângulo)
        Passo 6: Clique no terceiro ponto (P3 - extremidade do segundo segmento)
        Passo 7: O valor do ângulo será exibido temporariamente na barra de status

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o ângulo mostrado parece incorreto
        {
        É porque: 
            O sistema sempre calcula o ângulo interno menor. Para ângulos > 180°,
            o complemento é mostrado (360° - ângulo).
        }

}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para fazer marcação de ângulo reto (90°) faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado
        Passo 3: Clique no botão "∠" (Ângulo) na barra de ferramentas
        Passo 4: Clique no primeiro ponto (P1)
        Passo 5: Clique no segundo ponto (P2 - vértice)
        Passo 6: Mantenha a tecla Shift pressionada
        Passo 7: Mova o mouse - o terceiro ponto será forçado a ficar perpendicular
        Passo 8: Clique para confirmar (P3 será projetado na perpendicular)

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
    Se a linha perpendicular não aparecer no preview
        {
        Então faça: 
            Certifique-se de que Shift está pressionado ANTES de mover o mouse
            para o terceiro ponto, o Shift precisa estar pressionado até que você pressione
            o terceiro ponto.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para utilizar ferramenta free-hand faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado
        Passo 3: Clique no botão "O" (Free-Hand) na barra de ferramentas
        Passo 4: Clique e ARRASTE para desenhar a forma desejada
        Passo 5: Solte o botão do mouse para finalizar
        Passo 6: A forma será automaticamente fechada (conectando fim ao início)

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se a forma não aparecer após soltar o mouse
        {
        É porque: 
            O desenho precisa ter mais de 2 pontos para formar uma área válida.
        Então faça: 
            Desenhe uma forma maior com mais movimento.
        }

    Se quiser desenhar formas separadas (não unidas)
        {
        É porque: 
            O sistema une todas as formas em uma única máscara por frame.
        Então faça: 
            Use frames diferentes para máscaras independentes.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para utilizar ferramenta brush faça:
        Passo 1: Carregue um vídeo no editor
        Passo 2: Navegue até o frame desejado
        Passo 3: Clique no botão "✎" (Brush) na barra de ferramentas
        Passo 4: Um círculo de preview seguirá o cursor do mouse
        Passo 5: Clique e ARRASTE para "pintar" a área desejada
        Passo 6: Solte o botão do mouse para finalizar o traço

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o traço ficar "pontilhado" em vez de contínuo
        {
        É porque: 
            O mouse foi movido muito rápido.
        Então faça: 
            Mova o mouse mais devagar ou aumente o diâmetro do brush.
        }
  
    Se o preview do brush não aparecer
        {
        É porque: 
            O mouse está fora da área do vídeo.
        Então faça: 
            Mova o mouse para dentro dos limites do vídeo.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para mudar diâmetro da ferramenta brush faça:
        Passo 1: Clique com o BOTÃO DIREITO no botão "✎" (Brush)
        Passo 2: No menu de contexto, localize "Diâmetro"
        Passo 3: Ajuste o valor do spinbox (1 a 100 pixels)
        Passo 4: Clique fora do menu para fechar
        Passo 5: O preview do cursor refletirá o novo tamanho

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o tamanho parecer diferente do esperado
        {
        É porque: 
            O preview usa ItemIgnoresTransformations para manter tamanho constante
            independente do zoom. O tamanho real na máscara exportada será proporcional.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para editar nomes de geometrias faça:
        Passo 1: Localize a geometria na árvore de frames (painel esquerdo)
        Passo 2: Clique na geometria para selecioná-la
        Passo 3: Clique no botão "✏" (Renomear) na barra acima da árvore
        Passo 4: Digite o novo nome no diálogo que aparecer
        Passo 5: Clique "OK" para confirmar

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o botão "✏" estiver desabilitado
        {
        É porque: 
            Nenhuma geometria está selecionada na árvore.
        Então faça: 
            Clique primeiro em uma geometria (não no frame pai).
        }

    Se o nome não atualizar na árvore
        {
        Então faça: 
            A árvore deve atualizar automaticamente. Se não atualizar,
            navegue para outro frame e volte.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para remover geometrias faça:
        Passo 1: Localize a geometria na árvore de frames (painel esquerdo)
        Passo 2: Clique na geometria para selecioná-la
        Passo 3: Clique no botão "🗑" (Deletar) na barra acima da árvore

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o botão "🗑" estiver desabilitado
        {
        É porque: 
            Nenhum item válido está selecionado.
        Então faça: 
            Selecione uma geometria específica (ponto, reta, ângulo ou máscara).
        }

    Se quiser recuperar uma geometria deletada
        {
        É porque: 
            O sistema não possui função de desfazer.
        Então faça: 
            Recrie a geometria manualmente.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para remover todas as geometrias de um frame faça:
        Passo 1: Localize o frame na árvore
        Passo 2: Clique no frame para selecioná-lo (não nas geometrias filhas)
        Passo 3: Clique no botão "🗑" (Deletar)
        Passo 4: Todas as geometrias do frame serão removidas, assim como o frame de interesse

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se apenas algumas geometrias forem removidas
        {
        É porque: 
            Foi selecionada uma geometria específica em vez do frame.
        Então faça:
            Certifique-se de clicar no item "Frame X", não nos subitens.
        }

}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para alterar cor de geomtrias faça:

    >>> Para NOVAS geometrias (antes de criar):
        Passo 1: Clique com BOTÃO DIREITO no botão da ferramenta (●, ╱, ∠, ✎ ou ◉)
        Passo 2: No menu de contexto, clique em "Cor"
        Passo 3: Selecione a cor desejada no seletor de cores
        Passo 4: Clique "OK" para confirmar
        Passo 5: As próximas geometrias criadas usarão essa cor

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se a cor não mudar após selecionar
        {
        É porque:
            A nova cor só se aplica a geometrias criadas APÓS a alteração.
        Então faça:
            Crie uma nova geometria para ver a nova cor.
        }

    Se quiser a mesma cor para todas as ferramentas
        {
        Então faça:
            Configure a cor individualmente em cada ferramenta
            (elas têm configurações independentes).
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para alterar espessura ou tamanho do contorno faça:

    >>> Para NOVAS geometrias (antes de criar):
        Passo 1: Clique com BOTÃO DIREITO no botão da ferramenta (●, ╱, ∠, ✎ ou ◉)
        Passo 2: No menu de contexto, localize "Espessura"/"Tamanho"
        Passo 3: Ajuste o valor do spinbox
        Passo 4: Clique fora do menu para fechar
        Passo 5: As próximas geometrias usarão essa espessura

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se a espessura parecer não mudar com zoom
        {
        É porque:
            As linhas usam "pen cosmético" - a espessura é constante em pixels
            da tela, independente do nível de zoom.
        }

    Se a opção "Espessura" não aparecer para pontos
        {
        É porque:
            Pontos usam "Tamanho" (diâmetro do círculo), não espessura de linha.
        }
}

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

{ 
    Guia de Instruções:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Para exportar máscara binária faça:
        Passo 1: Certifique-se de ter uma máscara criada (free-hand ou brush) no frame
        Passo 2: Localize a máscara na árvore de frames (ícone "▣")
        Passo 3: Clique com BOTÃO DIREITO no nome da máscara de interesse
        Passo 4: Selecione "Criar máscara binária..." no menu de contexto
        Passo 5: Escolha o local e nome do arquivo no diálogo de salvamento
        Passo 6: Clique "Salvar"

    Exceções ou potenciais problemas:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Se o formato da máscara gerada não for o correto
        {
        É porque: 
            A aplicação exporta especificamente em .png, considerando o interior
            da máscara sendo branco (255) e o exterior preto (0).
        }
}