Coursera Algorithm Ⅱ week2 编程作业 Seam Carving

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全部代码: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)=

其中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值