全部代码:https://github.com/RedemptionC/CourseraAlgorithms/tree/master/seam
这是学完最小生成树,最短路径之后的编程作业
这个算法是用在resize图片时,和裁剪和scaling相比,它可以最大程度的保留图片信息,比如:
原图:

scaling之后:

裁剪之后:
seam carving:

可以看到,scaling之后,塔变得细长了,而裁剪之后则大量丢失了信息,相对而言,seam carving确实最大程度保留了图片信息
本次只需要提交一个类:
SeamCarver
notation
本实验中,(x,y)代表第x列,第y行,并且(0,0)代表左上角,(w-1,h-1)代表右下角
并且假设像素的颜色为RGB形式,用三个0~255间的整数表示
计算能量
这一步需要计算每个像素的能量,能量越高,就越不可能在seam中被移除
这里定义的能量计算公式是:dual-gradient energy function
E(x,y)=
其中

本文介绍了Coursera算法课程中的Seam Carving技术,用于图像调整大小。相比于简单的缩放和裁剪,Seam Carving能更好地保留图像信息。文章详细讲解了算法的四个步骤:计算能量、找出seam、移除seam,并提供了代码链接。在计算能量时,使用了dual-gradient energy function,通过比较像素差异来确定能量值。寻找seam时,通过虚拟点和relax操作找到能量最低的路径。最后,移除seam涉及能量的重新计算和图像像素的重新布局。
最低0.47元/天 解锁文章
4688

被折叠的 条评论
为什么被折叠?



