Skip to content

Instantly share code, notes, and snippets.

@dacr
Last active June 15, 2024 07:58
Show Gist options
  • Save dacr/cb1a8c949124a575db0bcb993a788469 to your computer and use it in GitHub Desktop.
Save dacr/cb1a8c949124a575db0bcb993a788469 to your computer and use it in GitHub Desktop.
extract text from an image / published by https://github.com/dacr/code-examples-manager #ae050f30-f03b-4549-93df-b08c6a4de460/522d047717fa864a047ccc7680f61d2ff1e48d81
{ pkgs ? import <nixpkgs> {}
}:
pkgs.mkShell {
name = "tesseract-env-shell";
buildInputs = with pkgs; [
tesseract
scala-cli
];
shellHook = ''
export LD_LIBRARY_PATH=${pkgs.tesseract}/lib
export TESSDATA_PREFIX=${pkgs.tesseract}/share/tessdata
'';
}
�PNG

IHDR����6��iCCPICC profile(�}�=H�@�_SKU*vPq�P��:��c�B*�Z�U�K?�& I����Zp�c���⬫�� ~�8;8)�H��K
-b<8�ǻ{��w�P/3���f�D\��V��+@�1*1S�M���_����.ʳ���9z����Hc�a�OoZ:�}�0+I
�9�A$~������ ��q�X,���Ƭd��S�E�(_Ⱥ�p�⬖��yO��P^[^�:�!$��E� BF(�B�V�iڏ{��\2�6��1�
TH��~wk&'ܤP����0�5��>��� �����Rf>I����л \\�4y����tɐ�OS(��3���w t���5�q�d��� pp�){��ݝ��{�����r�W'a�bKGD������� pHYs.#.#x�?vtIME� 0��tEXtCommentCreated with GIMPW�IDATx���y|������! `���NEA<��VQQ(��b�V�x)��z�zRA)�(jUA+���P9�R @�|~ �y&�&��&�y�^�� Lv�����쌱�Z�R�����@@@@  ������@@@@@@  ������@@@@@@   ����@@@@  ����@@@@  ������@@@@  ������@@@@@@   ����� Ȳ��N���� �� ?���g_.*�q���)D���}�;��d_�}7�#�@@  �1eb���n�]�LJ_&��J�.C:�_j�&թ'���i�&5l,�rJ῞�7Kk3e3WI��H٫���HGI�J�-���d�6���JU�%�Z�c���Z6#]�ΐ�ҥ�YR�2R��R�T)9E�i�Դ�T�*�,�Yx6o�]�R�H�2WJ���+dn�~>z�tn��}M{�H+��._*�\*�[)��*�n"5l.5k!�"Mj�*�Z���Me�xMf��2��/Y����_6����HΑJE����!i�b�7_��?F�ܯ)'SZ7S�ul��;R���MJ�ڑ�Jz{���Q��fW��������R���O�7�~ ����)%G��~ʕ�����ߏl߇e�~0�gߙ"�~���t���i���X/�e_I����O�N:�^�봯O���7�k���٢[W��}�=i�C2���׵.��||��%�J�����B�P!!RtaY+��4�~�d���_3k?�n?O��G�����z�����[��s�G$���Ҁٱ�K��%k�ؽK��'�R�E>o�x�f���NK�z����Wnj��ǵ~�3��i�"��9�a=��<�e�<(;�%�T� c�QD�ɚ �[��=P&7;�y�+]��d_���Br��/� �s��4+�����I!Ӏ&2�&x�̸!��U�aG�X#6n�2Pf�(͛A��-����e�^���/����ze��fK�}�F�s�Ť�+�����������#���,],{�2�f�o�����-=����P>��!3fP�W�i��N�w�⡷&� ���3K&��u��'�x� �6��/����͛�&��y��m[�&ˤ����)i߾�F����W��U��o]�{x$��ef����e>x,����ղC��{���y��){�M1]�c��ρ���ʌ:�M���4k!U;]:�To�o��~���Y2����7K� �<5��2s��ӿ
�y߇eλ@:��T��T��T�H�r�۽�o�"�>տ�O��g;�;������w���;d6���m�F���e:�/թ#U��-�=9���O��:?�1k?�}�>�ǟ�ʗ/�ik�4xޢUx�ؓ#�� y��/�I�/}\���9�M�\�F�����3e&�:��5�/��i���v���׷G���7ʕ+��bO����?���{I��$Ӷ�w�LŊ���9��s8�ޕ���y�y������$j{3���Vh$3r�̹]�2�_�TEJk+��V���������9��g�����^Ț ���c�� �dj�r��ʕ�ʕe4��_*���_��Z�[ȶ;[����nE��&Ȭx�����dn�Sr͟j�K�N�i�&]v���G��|1Nvj��)���]G���2�~:]�Vʄ��0>�=F�w��C�Of��]t�dL�[f��{m�+K�_��v��
�jդj�d5.�u~�$� s�?��K2��/�SO���U[��������&��;�wGX%�#,I�uϗ?K:��;'j�Zf��͡I���"8q}���#ܯk��2w=�~�9�[F��%2��y{x'zvdtO���52� uϟ�G�<�Hx�^}�GF�^t�{#�썑�'��^��.��?��Y᯿���/зs�����2_���-�J�2���Ɍ�'ӣO�\�dm��K�ݯ�e~�ۓ�#u�P���������䖭e>�׮t)km���|���jxG�g����B$��<1���6͓��x}�5�=��`��w���)_^澑�ͯt��)1�F��i�Y���kg�G �'XmR��o��V��f�{x����̨�R��د����������ո�̓o�Bs��Rj���p��v/�oׇ7�Çd�>�����.������?�7'�5`��������K��gЕ*�����qN�[��Ǣ�Π����������}�Ԡ�l�֡��wTc���n�T�j�]f��0���_�w�(��#��W���u���e���W���l�KE6<��yY��������/�W�dM��)n,�.]�=��������m��>�,v��԰��ime{�/��_}Y�Z��lj_��_��h��������(�|1����Zi�{�qv�Q�����\\`b/p�82BJJ������x�B�Gs��2d�/M����/T�tv�� �k�����=��̉8pɲ�W��/}������҂o0z����E��fZ��/߶���W�b�`r�7�m:8�����|���Aj���l����"��I2�)�x�՗=oP���n�R>�v�x���j��߇�����v�/�r�!ɻԷ��ˮˊ���~�ʡ_{�NRJ۪�lY�%��_�*��5-Z������uk�G �~�Ȟ�]�]��ǎ�]�,��p��e������#G�9���_סR��O���q��7AG ��\��b�lP8���GX;t��5���u�9w�۶�}(ߥOt��*H�]�_'r�������B��8�ݺŻ���.�{죘������Q��� �u�T�R�]f)��d��*����gGg{wV�bpR!xg8B��K�5�yq���fK��}$t;�Q�e�8�f���U9�߇�v �ߒtĻ��od� �A@�n��45z��u{铀�]��6�#����7yW_���z���$�т����Wt���c�11�ޕ�mu��>,�p\�s^���L�:q��?J����t�=��#��H�($𪈓�im��d��͖
���?�{c��5���&�pǀݻb3�\"�͜" �<�k��ҿ�ШIpP~>�Y��� 2���y�Ԓ����n�����^=:�?�4� �aސ16 E>��+�s ��$.Jl���[Q�ݷ7j����?hñ/6��4���5��K�6��f�:�Z^���4�_"l�-u��5�aekJa~�[l�Y����MC4o�R�i|���)��X*n�/jA������������\]vm�$���a�+�T����͘❰=��@����yq]fѺh��;MA;v� \���3 �"�3@�ȑ�D"�w�����BwjE�m;\�{;�⺒� K��f�<i��?s��4m���t��2��:�펍�y�8ڲI�ޣ"T�D�,A�ڙ��П�g�������Yf���>H�^ �:�W�? �ʖ�3*AWr�TGX�d��5��o������,�"b����������]@T'OV-�1AW��#>��o&���i4����t7�o��B}s�^TJ3_ ��.�e*���#,v�B�������۷'���?�eVdG��͏�7e��<([V��Fe��d�U��� �}� ��������������OK��t���y�����}���Q��-x��%���<}B�9�����^ρ�}#Q�Y�]�}{tƿ{w|_�e%; �k��/]D<$�.�y^x��K#��E�rRϛ�Ï��[ǽ�L��y���E�>'�ح�ss�Y/����l�YQ
����&J�-�jR�R��l������H���T�{�ω�O�έF~ʕ>s�F�B#��걝v׉�Y/;��p~�k.]Yj� �Q�.�9D��� ONa�q@|wP��� �2z[\�G@�P��t��Ʌ�p�p�~B9��t���:f�|iMf�ǿ|��Yӽ��:M�f��b}����|�{9���4�o܏�ȮZ�����,թ�2+�-^)���~Uf�R����HIb�u?��{&��%�*h�|2��{c3�ϽL:���W߹'j�WH����:v>�8+T�o�g>��̟���=����扺̢����v񂂍w�磁 Hqֺ���w�b�ُ?L�~������^�[үX&���i� /SF�5�?��ٲ��G �+�����?�Y�������Xf�X�;|��������{��<!�%? ��I���^����V�+�լ%{��b�h��o�ڷW��������*U�b�Mێ�a�+��!�I�R��ںBc_���7n�2��*Ue�=�_v�ɾ91�\����?�ɷ��&u2��|D@�o�n?�y�Ң��E99�N�>�S���5���<#;��=�µ���,w?G�������ؾ۷Gr��gy'���$�r�T�&�,V��e��7D���cdg�럐�� �+/����&'S�Iv܋���ˁ������^�Ffx���ūFɲ7?�?��I����m;�x6m�}�n���=n{��^�����u�'�lcɥ�e�J��x���W��b�IS�[�wϿQWJ��;������ϓ��*�w�D������Y�}��W���Ico���Q���x�,>-�;1Z�/��{+��-�������8��L�;��7�.�Df�[��g���)Ҁ�d:u���W���ڻ��}����H�<�l��e��g�O��WK��tc���HSO2�[���b���(;� �e'z�ٙS�~�ȴi�})�Ԋ�6`O���Jvڻ2s� y����J�v&���� �$u�Xv��2#. ^���/M c�+i�b%���e�ɻ$�u�6f�4&��a��y���16Z�Vm��ɬ�5�gm�p��[�$�2��ʕe#{s'�wtL�t���aol�N2��}��٤�R�1=�H�-p�(��=C��׽��Ħ]'3z�T�F|N��Nd��:�Km��=�<h�t�!z'�q�ES�T�gf����<��"��Ęg�IR��e���t��Q���;���t���Λz�e��({�_ >?n|F��E���HԨx�����)]Z��G?^�2�'�;ʌ_(5����&��;#�: H1V����{�7�do~�w�L�+O����L�^_+�� R���}�Y,$%��a�4!]�����IߑҤL�[�z��ǻ���%(<i�ּ%�,ޤ4�^~G���7� :��$���AÄ܌k���age�f����H��J�J��K�*Iu�H�kIu�K�S�[p�Q?1��v�2�e3ҥ�Rv����g��H�-��ͼ�z7M��Ve}b�_{r���d�/�V,���K9��Z)R�R�V2-ZI�[$fl ��J1 @@@@   ����@@@@  ����@@@@  ������@@@@@@   ����@@@@@@   ����@@@@  ����@@@@  ������@@@@@@   ������@@@@@@   ����@@@@  ����@@@@ (���yy���IEND�B`�
// summary : extract text from an image
// keywords : ocr, @testable
// publish : gist
// authors : David Crosson
// license : Apache NON-AI License Version 2.0 (https://raw.githubusercontent.com/non-ai-licenses/non-ai-licenses/main/NON-AI-APACHE2)
// id : ae050f30-f03b-4549-93df-b08c6a4de460
// created-on : 2024-05-25T11:45:47+02:00
// managed-by : https://github.com/dacr/code-examples-manager
// run-with : scala-cli $file
// attachments : hello-world.png, default.nix
// ---------------------
//> using scala "3.4.2"
//> using dep "net.sourceforge.tess4j:tess4j:5.11.0"
import net.sourceforge.tess4j.*
import java.io.File
val tesseract = Tesseract()
val text = tesseract.doOCR(File("hello-world.png"))
println(text)
// ---------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment