[{"data":1,"prerenderedAt":235},["ShallowReactive",2],{"project-17165889":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":32,"aspects":33,"strip":37,"post_text":41,"what":42,"said":78,"maker_in_thread":140,"shape":150,"grid":154,"attempts":197,"same_week":198,"maker_shows":30,"maker_hidden":228,"reader_version":229,"card":230},"17165889","Improved Seam Carving","Improved Seam Carving Using Forward Energy","title","Show HN: Improved Seam Carving Using Forward Energy","https:\u002F\u002Fgithub.com\u002Faxu2\u002Fimproved-seam-carving","github.com","seam_carver",1527405433,2018,99,22,438,2155,21,"notable","creative","image resizing","library",[24,25,21,26],"seam carving","forward energy","content aware scaling","debated",0,{"positive":30,"neutral":31,"mixed":28,"critical":30},2,4,8,{"idea":34,"performance":35,"docs":36},{"positive":30,"critical":28},{"positive":28,"critical":30},{"positive":28,"critical":28},[28,38,38,28,39,28,39,28,39,28,28,28,28,40,28,28,28,40,28,28,39,28],5,3,1,null,{"problem":43,"audience":41,"pricing":41,"motivation":53,"time_to_build":41,"stack":60,"openness":76,"stage":77,"team_size":77},{"value":44,"source":45,"evidence":46},"Original seam carving produces artifacts when resizing images; forward energy improves it","maker",[47,50],{"id":48,"by":11,"text":49},"17165890","Don't think most people know about the improved seam carving algorithm (since only the original is taught in most CS curriculums) and thought you might think this is cool!",{"id":51,"by":11,"text":52},"17169912","It's 14 seconds to remove 200 seams on the 512-by-342 bench image, but I note potential optimizations in the notebook. Right now, the seam_carve function in scikit-image accepts…",{"value":54,"source":45,"evidence":55},"Maker thought people would find the improved algorithm cool, since CS curricula teach only the original",[56,57],{"id":48,"by":11,"text":49},{"id":58,"by":11,"text":59},"17168862","That assignment only covers the original seam carving algorithm; this post also covers the improved seam carving algorithm!",[61,66,70],{"value":62,"source":63,"evidence":64},"Python","inferred",[65],{"id":51,"by":11,"text":52},{"value":67,"source":45,"evidence":68},"scikit-image",[69],{"id":51,"by":11,"text":52},{"value":71,"source":45,"evidence":72},"NumPy",[73],{"id":74,"by":11,"text":75},"17176070","Also I should just write this in Cython since I do a lot of unnecessary stuff when using numpy.","open_source","unknown",{"praise":79,"objections":95,"requests":110,"questions":126,"alternatives":131},[80,88],{"value":81,"source":82,"evidence":83},"Neat algorithm; good to see it proposed for merging into scikit-image","commenter",[84],{"id":85,"by":86,"text":87},"17167619","jaytaylor","It is a neat algorithm, hope you are able to get it merged into scikit-image [0] without too much fuss~ good luck! [0] https:\u002F\u002Fgithub.com\u002Fscikit-image\u002Fscikit-image\u002Fissues\u002F3082",{"value":89,"source":82,"evidence":90},"Seam carving is cool, including for image fingerprinting",[91],{"id":92,"by":93,"text":94},"17172068","chatmasta","Seam carving is really cool, not just for the typical application of changing images, but also as a method of fingerprinting images (and the other side, anonymizing them). There…",[96,103],{"value":97,"source":82,"evidence":98},"Too slow: 14 seconds per image",[99],{"id":100,"by":101,"text":102},"17169886","innagadadavida","14 sec per image is excessive, is there either an implementation or algorithm that can handle do this in less than 500ms per image?",{"value":104,"source":82,"evidence":105},"Photoshop Content Aware Scaling is much faster",[106],{"id":107,"by":108,"text":109},"17171808","WhiteNoiz3","For anyone interested, Photoshop has had this feature for a long time - Content Aware Scaling. It's also much faster.",[111,115],{"value":112,"source":82,"evidence":113},"Speed up to under 500ms per image",[114],{"id":100,"by":101,"text":102},{"value":116,"source":82,"evidence":117},"Try a CNN or ML-based energy function",[118,122],{"id":119,"by":120,"text":121},"17168339","xg15","> Both papers introduce different ways to \"calculate the energy of a pixel, which is a measure of its importance—the higher the energy, the less likely that the pixel will be…",{"id":123,"by":124,"text":125},"17169290","TTPrograms","The biggest value of ML here would likely be to create a more useful energy function. This could be informed either by object detection data or hand drawn \"energy\" masks. The…",[127],{"value":128,"source":82,"evidence":129},"Has anyone tried plugging a CNN into the energy function?",[130],{"id":119,"by":120,"text":121},[132,136],{"value":133,"source":82,"evidence":134},"Adobe Photoshop Content Aware Scaling",[135],{"id":107,"by":108,"text":109},{"value":137,"source":82,"evidence":138},"skimage.transform.seam_carve",[139],{"id":51,"by":11,"text":52},{"comments":141,"answered":31,"key":142},12,[143,144,147],{"id":48,"text":49},{"id":145,"text":146},"17172885","That looks pretty cool! Thanks for the link! I'll look more into it soon.",{"id":148,"text":149},"17168507","I'm unfamiliar with CNN's, but you can draw masks manually to protect\u002Fremove parts of an image, or use a face recognition thing, or a motion detection thing, etc.",{"commenters":151,"max_depth":152,"maker_replies":141,"first_comment_mins":40,"lifespan_hours":153},10,6,43,[155,157,158,159,161,163,164,167,169,170,172,174,177,179,181,183,186,188,189,191,192,196],[48,28,28,156,11,40],"project\u002Fpositive\u002Fidea",[85,28,38,156,86,28],[92,40,38,156,93,28],[145,40,28,160,11,40],"commenter\u002Fneutral\u002Fnone",[119,30,39,162,120,28],"project\u002Fneutral\u002Fidea",[148,30,28,162,11,40],[165,30,39,162,166,28],"17169056","mlthoughts2018",[168,30,28,160,11,40],"17169391",[123,30,39,162,124,28],[171,30,28,160,11,40],"17169411",[173,30,28,160,124,28],"17170584",[175,30,28,160,176,28],"17171531","clickok",[178,30,28,160,11,40],"17172963",[100,39,40,180,101,28],"project\u002Fcritical\u002Fperformance",[51,39,28,182,11,40],"project\u002Fneutral\u002Fperformance",[184,39,28,185,11,40],"17171229","project\u002Fpositive\u002Fperformance",[187,39,28,182,11,40],"17176068",[107,39,40,180,108,28],[190,39,28,182,11,40],"17172836",[74,39,28,182,11,40],[193,31,39,194,195,28],"17168744","project\u002Fneutral\u002Fdocs","imranq",[58,31,28,162,11,40],[],[199,204,209,214,219,224],{"id":200,"name":201,"points":202,"category":203},"17146451","Wired-elements",650,"dev_tools",{"id":205,"name":206,"points":207,"category":208},"17173051","Crypto51",581,"finance_crypto",{"id":210,"name":211,"points":212,"category":213},"17147272","Parabola.io",291,"web_saas",{"id":215,"name":216,"points":217,"category":218},"17189652","Writing Streak",262,"productivity",{"id":220,"name":221,"points":222,"category":223},"17180686","Recursive Recipes",250,"consumer_social",{"id":225,"name":226,"points":227,"category":218},"17149371","Clippi.io",208,false,"v2",{"id":231,"name":5,"line":6,"ai":228,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":232,"maker":11,"domain":10,"tier":19,"attempts":28,"strip":233,"url":9,"mix":234,"praise":81,"objection":97,"sub":21},17165889,[24,25,21,26],"0550303030000100010030",[30,31,28,30],1794036566341]