Alguém sabe um programa semelhante ao Text Extractor que vem no PowerToys do Windows?
Ele é basicamente um OCR que você extrai o texto de uma imagem, não é 100%, mas reduz muito o trabalho para não ter que digitar todo o texto/código/url.
Alguém sabe um programa semelhante ao Text Extractor que vem no PowerToys do Windows?
Ele é basicamente um OCR que você extrai o texto de uma imagem, não é 100%, mas reduz muito o trabalho para não ter que digitar todo o texto/código/url.
Instale a GUI para o Tesseract: gimagereader
Ele extrai textos de imagens e arquivos PDF no Linux.
Você abre uma imagem nele e escolhe a língua na setinha da opção: Reconhecer seleção.
Seleciona o texto na imagem, depois ou clique em Reconhecer seleção Português (pt_BR) ou clique com o botão direito do mouse sobre a seleção e escolha “Reconhecer para área de transferência”, esse último deixa o texto na área de transferência, depois é só clicar em um editor de texto.
Obs: quando se instala o gimagereader ele só vem com a opção de lingua inglesa para converter, para ter outras opções de língua como português você precisa fazer uma busca com o nome tesseract e ver os pacotes de linguagem e instalar, assim vai aparecer mais linguas em: Reconhecer seleção.
Testei e parece que funciona de modo bem semelhante (mas teria que definir um atalho de teclado para funcionar legal)
Esse programinha NormCap funciona também, mas depois que clica no AppImage tem que clicar na engrenagem e escolher “Keep in system tray” e chamar ele a partir do tray, depois que seleciona o texto na imagem cola no editor de texto.
Não funcionou aqui. Quando ativo ele, a tela fica piscando, bugando os workspace tudo do Qtile.
OBS: Instalei pelo AUR.
Se você não tiver problemas com scripts, dá para instalar o tesseract
e os pacotes de idiomas (o mesmo que vem com o gImageReader) e montar uma “pipeline” usando outra ferramenta de screenshot – nesse exemplo, o scrot
--, o xclip
(que maneja a área de transferência) e o notify-send
(para gerar a notificação).
#!/usr/bin/env bash
set -eo pipefail
if TEXTO=$(scrot -s -o /dev/stdout | tesseract -l por - -); then
printf '%s\n' "$TEXTO" | xclip -selection clipboard
notify-send -a 'Text Grab de Taubaté' -- "${TEXTO:-vazio}"
fi
Sobre o problema de utilizar script, tranquilo comigo.
Instalei os pacotes que faltava no sistema:
tesseract-data-eng tesseract-data-por tesseract scrot
Xclip e Dunst ja tinha instalados no sistema.
Não entendi o funcionamento muito bem do script, porém quando executo ele exibe a seguinte mensagem de erro:
scrot: option --select: Unknown value for suboption 'o'
Error during processing.
Apesar do problema, tenho uma duvida em relação ao funcionamento do script. É para ser executado após usar o scrot para captura de imagem ou não tem nada haver? Pq se for, vai ser problema, porque os scripts que eu utilizo para captura utiliza o maim e não faço ideia como alterar eles para colocar o scrot.
https://www.vivaolinux.com.br/artigo/Extracttext-como-extrair-texto-de-uma-area-selecionada-da-tela/
Nada a ver, ele invoca o scrot
por conta própria. O -o /dev/stdout
é para que ele envie a imagem para a entrada do comando seguinte (em vez de um arquivo). O tesseract
então reconhece o texto na imagem e o libera como saída, que é capturada na variável TEXTO
.
Você mesmo pode adaptar o script para usar o maim
e remover o scrot
. Se eu tiver entendido o manual corretamente, será assim:
# Troque
if TEXTO=$(scrot -so /dev/stdout | tesseract -l por - -); then
# por
if TEXTO=$(maim -s | tesseract -l por - -); then
Eu tinha feito esse script há algum tempo e o adaptei para o Wayland depois que migrei para o Sway. Postei a versão que eu tinha feito para o Xorg mas não sabia que desde então o scrot
atualizou e mudou como a opção -s
funciona. Ajustei a resposta original.
Muito obrigado a @Capezotte e @aguamole pelas soluções oferecidas, ambas servem ao que estou procurando. Porém agora surgiu outro problema…rs Ambas oferecem extras que me agrada, queria acrescentar algo e customizar e aplicar em uma solução.
Extracttext - como extrair texto de uma área selecionada da tela [Artigo]
O extracttext oferece extras para remover linhas em branco dentre outras coisas, porém falta opção de notificar após capturar o texto, o que existe na versão do script do @Capezotte.
Queria acrescentar esta parte do código do @Capezotte ao extracttext:
printf '%s\n' "$TEXTO" | xclip -selection clipboard
notify-send -a 'Text Grab de Taubaté' -- "${TEXTO:-vazio}"
Porém com a seguinte customização:
notify-send -i /usr/share/archcraft/icons/dunst/picture.png -t 5000 "Colocar o texto capturado aqui"
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
Como eu faço isso não sabendo programar? …rs
OBS:
#!/usr/bin/env bash
set -eo pipefail
if TEXTO=$(maim -s | tesseract -l por - -); then
printf '%s\n' "$TEXTO" | xclip -selection clipboard
notify-send -a 'Text Grab de Taubaté' -- "${TEXTO:-vazio}"
fi
Quando executo este script ele funciona, capturando e exibindo a notificação, porém exibe a saída no terminal:
./textgrab
Estimating resolution as 215
Acrescente o sed
do extracttext
como parte da linha com if
no meu script:
#!/usr/bin/env bash
set -eo pipefail
if TEXTO=$(maim -s | tesseract -l por - - | sed '/^$/N;/^\n$/D'); then
printf '%s\n' "$TEXTO" | xclip -selection clipboard
notify-send -a 'Text Grab de Taubaté' -- "${TEXTO:-vazio}"
fi
Isso são detalhes da operação do tesseract
(mais especificamente, ele chutando a resolução da imagem antes de soltar o texto). Nada que afete o funcionamento do script.
Já esta de olho neste programa antes, porém tinha salvo este link no meu pc e como estou em viagem com o notebook, não lembrava o nome dele
Mas agora com os scripts sugeridos no tópico, torna mais prático para mim que utiliza o Qtile configurar para executar ele via atalho.
Vou deixar uma sugestão mas não sei se é exatamente isso GitHub - biglinux/bigocrpdf
Após alterar algumas coisas no código do @Capezotte ficou assim o código final:
#!/usr/bin/env bash
set -eo pipefail
if TEXTO=$(maim -s | tesseract -l por - - | sed '/^$/N;/^\n$/D'); then
printf '%s\n' "$TEXTO" | xclip -selection clipboard
notify-send -i /usr/share/archcraft/icons/dunst/picture.png -t 5000 "${TEXTO:-vazio}"
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
fi
Muito obrigado ao @Capezotte, @aguamole e a todos que deram sugestões.
Para quem for utilizar, é necessário os seguintes pacotes:
tesseract # ocr
tesseract-data-por # pacote para leitura de ocr em português
tesseract-data-eng # pacote para leitura de ocr em inglês
maim # aplicativo para screenshot
xclip # aplicativo para gerenciar a area de transferencia
dunst # aplicativo para notificação
Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.