2009年4月6日星期一

Seam Carving for Image Resizing

Seam Carving 是一种图像缩放技术。Shai Avidan 和 Ariel Shamir在07 Siggraph 提出,在08 siggraph 做了改进使得这种方法能扩展到video 的缩放。传统的图像缩放是基于如双线性差值的技术。这些技术在保持图像结构上是很好的,特别是在图像的相似变换(即图像宽和高之比不变的情况下)缩放是很好的。但是在实际应用中,由于各类显示屏的宽和高之比不完全相同,往往要有基于宽和高之比发生变化的图像缩放。对于这种缩放,通常是先在一个维度(比如宽)方向上缩放到目标宽度,然后再在高方向上做类似缩放。由于在seam carving 技术中,图像放大技术完全是基于图像缩小技术来做的,所以讨论seam carving性能时往往只考虑单独将图像宽(高)缩小一定比例来考察的。这个比例一般是1/3到1/2。 假如现在要将图像宽度缩一半,最直观的做法是将图像的某些不重要的列拿掉以达到宽度缩小的目的。而seam carving 的做法是更大胆的,它将图像中从第1行到最后一行8邻域连接路径(保证每行一个像素点)的seam 去掉。去掉k条seam,宽度缩小k。至于决定去掉哪些seam,backward seam carving 用了一阶梯度,forward seam carving 考察去掉seam后对图像的影响。

具体内容参见以下网站,里面有文章和demo以及做好的应用程序:

没有评论:

发表评论