{"id":28356,"date":"2018-01-31T13:19:19","date_gmt":"2018-01-31T11:19:19","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28356"},"modified":"2018-01-31T13:19:19","modified_gmt":"2018-01-31T11:19:19","slug":"caire-content-aware-image-resize-library","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/31\/caire-content-aware-image-resize-library\/","title":{"rendered":"Caire &#8211; content aware image resize library"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/esimov\/caire\">Caire<\/a> is content aware image resize library.<\/p>\n<blockquote>\n<h3>How does it works<\/h3>\n<ul>\n<li>An energy map (edge detection) is generated from the provided image.<\/li>\n<li>The algorithm tries to find the least important parts of the image taking into account the lowest energy values.<\/li>\n<li>Using a dynamic programming approach the algorithm will generate individual seams accrossing the image from top to down, or from left to right (depending on the horizontal or vertical resizing) and will allocate for each seam a custom value, the least important pixels having the lowest energy cost and the most important ones having the highest cost.<\/li>\n<li>Traverse the image from the second row to the last row and compute the cumulative minimum energy for all possible connected seams for each entry.<\/li>\n<li>The minimum energy level is calculated by summing up the current pixel with the lowest value of the neighboring pixels from the previous row.<\/li>\n<li>Traverse the image from top to bottom and compute the minimum energy level. For each pixel in a row we compute the energy of the current pixel plus the energy of one of the three possible pixels above it.<\/li>\n<li>Find the lowest cost seam from the energy matrix starting from the last row and remove it.<\/li>\n<li>Repeat the process.<\/li>\n<\/ul>\n<\/blockquote>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Caire is content aware image resize library. How does it works An energy map (edge detection) is generated from the provided image. The algorithm tries to find the least important parts of the image taking into account the lowest energy values. Using a dynamic programming approach the algorithm will generate individual seams accrossing the image &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/31\/caire-content-aware-image-resize-library\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Caire &#8211; content aware image resize library<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Caire - content aware image resize library #WebDev","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[1460,1330],"keyring_services":[],"class_list":["post-28356","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-image-recognition","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":9617,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/10\/28\/daily-del-icio-us-bookmarks\/","url_meta":{"origin":28356,"position":0},"title":"Daily del.icio.us bookmarks","author":"Leonid Mamchenkov","date":"October 28, 2005","format":false,"excerpt":"Shared bookmarks for del.icio.us user tvset on 2005-10-27 The Object Oriented Programming Web -- Programming and Computer Science Tutorials, Lecture notes and online books Tagged as: algorithms books development programming tutorials Dictionary of Algorithms and Data Structures Tagged as: algorithm algorithms computers concepts data development dictionary documentation education engineering howto\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26085,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/05\/03\/algorithm-economy-and-containers\/","url_meta":{"origin":28356,"position":1},"title":"Algorithm Economy and Containers","author":"Leonid Mamchenkov","date":"May 3, 2016","format":false,"excerpt":"Containers (Docker, et al) have been getting all the hype recently. \u00a0I've played around with these a bit, but I'm not yet convinced this is the next greatest thing for projects that I am involved with currently. \u00a0However, it helps to look at these from different perspectives. \u00a0Here's a blog\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23419,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/01\/28\/mysql-view-processing-algorithms\/","url_meta":{"origin":28356,"position":2},"title":"MySQL view processing algorithms","author":"Leonid Mamchenkov","date":"January 28, 2015","format":false,"excerpt":"I had a last work session last night, troubleshooting one of the project's database performance issues. \u00a0Without giving more details (at least for now), I want to save the link to MySQL view processing algorithms for future me. For UNDEFINED, MySQL chooses which algorithm to use. It prefers MERGE over\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7981,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/09\/30\/timestamp_image\/","url_meta":{"origin":28356,"position":3},"title":"timestamp_image","author":"Leonid Mamchenkov","date":"September 30, 2004","format":false,"excerpt":"This is yet another script to deal with images from digital cameras. It will scale (resize preserving the width to height ratio) down the image to the size you've specified and annotate (write on top of the image) it with date time taken from EXIF header of the image. Font\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22149,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/08\/css-colorguard-keep-a-watchful-eye-on-your-css-colors\/","url_meta":{"origin":28356,"position":4},"title":"CSS Colorguard &#8211; keep a watchful eye on your CSS colors","author":"Leonid Mamchenkov","date":"July 8, 2014","format":"link","excerpt":"CSS Colorguard - keep a watchful eye on your CSS colors. Here is a better description from the README: Every CSS project starts out with good intentions, but inevitably, one too many people eye-dropper colors into nooks and crannies that you never knew existed. CSS Colorguard helps you maintain the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"CIEDE2000 math","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/07\/CIEDE2000-math-389x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":10099,"url":"https:\/\/mamchenkov.net\/wordpress\/2006\/05\/02\/daily-del-icio-us-bookmarks\/","url_meta":{"origin":28356,"position":5},"title":"Daily del.icio.us bookmarks","author":"Leonid Mamchenkov","date":"May 2, 2006","format":false,"excerpt":"Shared bookmarks for del.icio.us user tvset on 2006-05-01 Information Retrieval Systems -- A huge directory of resources (IRS). Tagged as: directory list resources search 360voice.com -- Give your Xbox a voice of it's own! Tagged as: blog blogging blogs games gaming ideas microsoft web2.0 webservices xbox Colbert Lampoons Bush at\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=28356"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28356\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28356"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}