{"id":13607656,"url":"https://github.com/Erkaman/poisson_blend","last_synced_at":"2025-04-12T14:31:06.095Z","repository":{"id":141383060,"uuid":"120217100","full_name":"Erkaman/poisson_blend","owner":"Erkaman","description":"Seamless copy-and-paste of images with Poisson Blending.","archived":false,"fork":false,"pushed_at":"2023-05-10T16:46:51.000Z","size":12168,"stargazers_count":356,"open_issues_count":2,"forks_count":33,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-07T08:18:36.605Z","etag":null,"topics":["c-plus-plus","demo","eigen","image","image-processing","math","mathematics","processing","tutorial"],"latest_commit_sha":null,"homepage":"https://erkaman.github.io/posts/poisson_blending.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erkaman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-04T19:45:35.000Z","updated_at":"2025-03-25T18:53:18.000Z","dependencies_parsed_at":"2024-01-19T10:11:54.082Z","dependency_job_id":"0886ebde-f6b4-4849-aeeb-8ba34dd8a5ec","html_url":"https://github.com/Erkaman/poisson_blend","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fpoisson_blend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fpoisson_blend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fpoisson_blend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erkaman%2Fpoisson_blend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erkaman","download_url":"https://codeload.github.com/Erkaman/poisson_blend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248581063,"owners_count":21128099,"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":["c-plus-plus","demo","eigen","image","image-processing","math","mathematics","processing","tutorial"],"created_at":"2024-08-01T19:01:20.458Z","updated_at":"2025-04-12T14:31:06.080Z","avatar_url":"https://github.com/Erkaman.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# poisson_blend - A simple, readable implementation of Poisson Blending\n\nAn implementation of Poisson Blending, that demonstrates the concepts explained in [my article](https://erkaman.github.io/posts/poisson_blending.html).\n\nTo use the progam, you specify a source image and a target image. The source image is seamlessly copied and pasted\ninto the target image, at some specified pixel location.\n\nBy running the command line\n\n```\npoisson_blend -source img/kitten.png -target img/library.png -mask img/kittenmask.png -output result.png -mx 280 -my 340\n```\n\nAn image of a kitten can be seamlessly copied and pasted into the library, at the position (280, 340), as can be seen below.\nThe mask specifies which pixels of the kitten should actually be copied and pasted. The remaining pixels are ignored.\nNote that only pure red pixels of RGB color `(255,0,0)` are considered part of the mask.\n\nThe result of the above command line can be seen below:\n\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/kitten.png\" alt=\"kitten\" width=\"37\" height=\"46\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/library.png\" alt=\"library\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/kittenmask.png\" alt=\"kitten mask\" width=\"37\" height=46\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/kitten_library.png\" alt=\"kitten mask\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003emask\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n## Gallery\n\nA small gallery of images made with this program are presented below.\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/penguin.png\" alt=\"penguin\" width=\"49\" height=\"74\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/library.png\" alt=\"library\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/penguin_library.png\" alt=\"penguin library\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/moon.png\" alt=\"moon\" width=\"194\" height=\"129\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/gothenburg.png\" alt=\"gothenburg\" width=\"204\" height=\"163\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/moon_gothenburg.png\" alt=\"moon gothenburg\" width=\"204\" height=\"163\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/penguin.png\" alt=\"penguin\" width=\"49\" height=\"74\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/beach.png\" alt=\"beach\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/penguin_beach.png\" alt=\"penguin beach\" width=\"240\" height=\"164\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/eagle.png\" alt=\"eagle\" width=\"166\" height=\"135\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/liberty.png\" alt=\"liberty\" width=\"240\" height=\"180\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/eagle_liberty.png\" alt=\"eagle liberty\" width=\"240\" height=\"180\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/watereagle.png\" alt=\"water eagle\" width=\"148\" height=\"55\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/lake.png\" alt=\"lake\" width=\"270\" height=\"202\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/watereagle_lake.png\" alt=\"water eagle lake\" width=\"270\" height=\"202\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n\n\u003ctable\u003e\u003cthead\u003e\n\u003c/thead\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/balloon.png\" alt=\"balloon\" width=\"93\" height=\"112\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/collosseum.png\" alt=\"colosseum\" width=\"266\" height=\"199\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"img/balloon_collosseum.png\" alt=\"balloon colosseum\" width=\"266\" height=\"199\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003esource\u003c/td\u003e\n\u003ctd align=\"center\"\u003etarget\u003c/td\u003e\n\u003ctd align=\"center\"\u003eresult\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\n## Building\n\nThe only dependencies are [lodepng](https://github.com/lvandeve/lodepng) and [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page).\nBoth of which are included within this repository.\n\nWe use CMake for building. If on Linux or OS X, you can build it in the terminal by doing something like:\n\n```\nmkdir build \u0026\u0026 cd build \u0026\u0026 cmake .. \u0026\u0026 make\n```\n\nIf on Windows, create a `build/` folder, and run `cmake ..` from\ninside that folder. This will create a visual studio solution(if you\nhave visual studio). Launch that solution, and then simply compile the\nproject named `poisson_blend`.\n\n## Image Sources\n\nBelow we list the soures of all images that we used in the gallery.\n\n- [kitten.png](https://www.flickr.com/photos/rondeboom/9296207416/)\n- [library.png](https://www.flickr.com/photos/uowarchives/5513608992/)\n- [gothenburg.png](https://www.flickr.com/photos/belola/4257701496/)\n- [moon.png](https://www.flickr.com/photos/dcmaster/7533083314/)\n- [penguin.png](https://www.flickr.com/photos/141457238@N03/26834524313/)\n- [beach.png](https://www.flickr.com/photos/notcub/2568905280)\n- [liberty.png](https://www.flickr.com/photos/reinholdbehringer/3698799772/)\n- [eagle.png](https://www.flickr.com/photos/bobengr/32130057682/)\n- [lake.png](https://www.flickr.com/photos/74444001@N00/62802646)\n- [watereagle.png](https://www.flickr.com/photos/mickthompson/16549423644)\n- [collosseum.png](https://www.flickr.com/photos/sandravoetbal/4075677218)\n- [balloon.png](https://www.flickr.com/photos/prestonkemp/4655399966/)\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FErkaman%2Fpoisson_blend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FErkaman%2Fpoisson_blend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FErkaman%2Fpoisson_blend/lists"}