{"id":18281962,"url":"https://github.com/willnilges/inkpath","last_synced_at":"2025-07-17T16:36:09.204Z","repository":{"id":44034396,"uuid":"340710032","full_name":"WillNilges/inkpath","owner":"WillNilges","description":"A plugin for transcribing hand-drawn notes, diagrams, and tables onto xournalpp documents","archived":false,"fork":false,"pushed_at":"2025-02-20T01:11:36.000Z","size":49029,"stargazers_count":21,"open_issues_count":18,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-20T23:33:51.753Z","etag":null,"topics":["cplusplus","lua","opencv"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WillNilges.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-20T17:16:56.000Z","updated_at":"2025-03-11T00:34:10.000Z","dependencies_parsed_at":"2024-12-22T03:16:53.216Z","dependency_job_id":"a092591e-2b6c-401b-92dc-821dc81ec516","html_url":"https://github.com/WillNilges/inkpath","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillNilges%2Finkpath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillNilges%2Finkpath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillNilges%2Finkpath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WillNilges%2Finkpath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WillNilges","download_url":"https://codeload.github.com/WillNilges/inkpath/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299766,"owners_count":20916183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","lua","opencv"],"created_at":"2024-11-05T13:03:54.601Z","updated_at":"2025-04-05T06:30:42.906Z","avatar_url":"https://github.com/WillNilges.png","language":"C++","readme":"# Inkpath\n\n\u003cdiv id=\"badges\"\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/made-with-c.svg\" alt=\"C badge\" height=\"30px\"/\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/powered-by-energy-drinks.svg\" alt=\"Energy drink badge\" height=\"30px\"/\u003e\n\u003cimg src=\"https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg\" alt=\"60 percent badge\" height=\"30px\"/\u003e\n\u003c/div\u003e\n\nIf you're anything like me, you're a ~~huge nerd~~ engineering major who enjoys\nworking out problems both on whiteboards and digitally. You might also\nhave six million photos of your whiteboard work trapped on your phone\nor in your Google Drive with no good way to easily group them in with\nyour other notes.\n\n\u003cp align=\"center\"\u003e\n\u003c!-- ![Makerfaire 2021 Card](https://user-images.githubusercontent.com/42927786/147401085-94773933-e4a3-4039-97e6-91cf2ea1ee6c.png) --\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/42927786/147401085-94773933-e4a3-4039-97e6-91cf2ea1ee6c.png\" alt=\"Makerfaire 2021 Card\" width=\"400px\" style=\"display: block; margin: 0 auto\"/\u003e\n\n\u003c/p\u003e\n\nInkpath is a project designed to crunch those whiteboard photos into easily\neditable [Xournal++](https://github.com/xournalpp/xournalpp) note files so that you can\ndrop your whiteboard scrawlings directly into your lecture notes. Convenient!\n\nThe project consists of a lua script and a shared object library written in C++\nstatically linked with some OpenCV utils. The project now uses OpenCV in place\nof Autotrace to perform an Otsu Threshold. The thresholded image is then inverted,\nand skeletonized, producing the centerline of each individual object in the image\n(which at this point should be just markings). The resulting image is then scanned\nfor contours. These contours are pushed onto the lua stack, and passed to the \nXournal++ API. Unlike the previous implementation, this operates purely on rasters.\n\n## Installation and Usage\n\nRequires Xournalpp \u003e=1.2.0\n\nInkpath is packaged as a statically-linked `.so` file coupled with a Lua script,\nso you should be able to download the release from the [releases page](https://github.com/WillNilges/inkpath/releases)\nand have it Just Work™.\n\n_As of 2022-09-24, the API changes in Xournalpp are merged, but have not made\nit into the package managers. You will probably need to [build xournalpp from source](https://github.com/xournalpp/xournalpp/blob/master/readme/LinuxBuild.md)\nin order to get them._\n\n_Inkpath is coming to a package manager near you soon™!_\n\n### Installation on Windows\n\n1. Download the latest release of [ImageTranscription-win.zip](https://github.com/WillNilges/inkpath/releases/)\n\n2. Unzip the archive and copy ImageTranscription/ to the plugin path:\n\n`C:\\Program Files\\Xournal++\\share\\xournalpp\\plugins\\ImageTranscription`\n\n3. Run install.ps1 to update the user Path\n\n4. Run Xournal++ and enjoy\n\n#### To Uninstall\n\n1. Delete `C:\\Program Files\\Xournal++\\share\\xournalpp\\plugins\\ImageTranscription`\n\n2. Remove environment variable\n\n- Type `Win+R` and type `sysdm.cpl`\n- Go to Advanced \u003e Enviornment Variables \u003e Path \u003e Edit\n- Delete ImageTranscription entry\n- Press OK until all dialogs are closed\n\n## Compiling\n\n### Linux\n\n```\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n### Arch\n\n```BASH\n# Install dependencies\npacman -S \\\ncmake gtk3 base-devel libxml2 portaudio libsndfile \\\npoppler-glib texlive-bin texlive-pictures gettext libzip lua54 lua54-lgi \\\ngtksourceview4 wget unzip git tmux\n\n# Build openCV\n./HACKING/build-opencv.sh\n```\n\n### Debian\n\n```BASH\n# Install dependencies\napt -y install \\\nmake liblua5.4-dev build-essential pkg-config libglib2.0-dev libpng-dev \\\ncmake libgtk-3-dev libpoppler-glib-dev portaudio19-dev libsndfile-dev \\\ndvipng texlive libxml2-dev libzip-dev librsvg2-dev gettext lua-lgi \\\nlibgtksourceview-4-dev git gdb x11-apps wget unzip\n./HACKING/build-opencv.sh $NUMBER_OF_CORES_YOU_HAVE # You'll need sudo to install this\n./HACKING/build-xopp.sh $NUMBER_OF_CORES_YOU_HAVE # You'll probably need sudo to install this too\nmake install\n```\n\n\u003cimg src=\"https://forthebadge.com/images/badges/works-on-my-machine.svg\" alt=\"C badge\" height=\"30px\"/\u003e\n\n### Windows\n\n1. Install MSYS2\n\n2. Open MSYS2 MINGW64 shell\n\n3. Install dependencies\n\n```\npacman -S \\\nmingw-w64-x86_64-cmake mingw-w64-x86_64-gtk3 base-devel libxml2 mingw-w64-x86_64-portaudio mingw-w64-x86_64-libsndfile mingw-w64-x86_64-poppler mingw-w64-x86_64-libzip mingw-w64-x86_64-lua53 mingw-w64-x86_64-lua53-lgi mingw-w64-x86_64-gtksourceview4 mingw-w64-x86_64-opencv wget unzip git tmux\n```\n\n4. Launch MSYS2 MINGW64 shell as Administrator, and use `cmake` to build and\nrun post-build script to gather dependencies and assemble the plugin\n\n```\nmkdir build\ncd build\ncmake .. # Use ${MINGW_PREFIX}/bin/cmake if normal cmake doesn't work\nmingw32-make.exe install\n```\n\n6. Run scripts/win_configure_path.ps1 to update the user Path\n\n7. Run Xournal++ and enjoy\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillnilges%2Finkpath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillnilges%2Finkpath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillnilges%2Finkpath/lists"}