接缝裁剪

✍ dations ◷ 2025-11-28 18:45:17 #图像处理

接缝裁剪(Seam carving),是一个可以针对图像内容做正确缩放的算法(由Shai Avidan和Ariel Shamir所发表)。概念上,算法会找出一系列的接缝(seam)(接缝是在图像中最不重要的一连串像素),接着利用接缝对图像做缩放。如果是要缩小图像,则移除这些接缝,若是放大,则在这些接缝的位置上,插入一些像素。接缝裁剪可以人工定义一些不会被修改的像素区域,也可以从图像中移除整个物体。

接缝裁剪算法的主要目的是图像重定向(image retargeting),将图像无失真的显示在各种大小的萤幕或位置上,比如说,手机、投影幕等等。

接缝有两种形式,水平或垂直的。接缝本身是一条由像素构成的路径,水平的接缝连接图像的左侧和右侧,路径中的像素个数和图像的列数一致。垂直接缝则类似,连接图像的顶部和底部,像素个数和图像的行数一致。接缝上每个像素都有存在一个称为重要性或者能量的指标,这个指标的值是根据像素的邻接像素计算得到的。一个像素和周边像素的相似度越高,则其重要性或者说能量就越低。

1. 首先,我们拿到一张需要缩小的照片(这里以缩小举例)

2. 接着我们计算照片中每一个像素的强度(energy),这一步可以由很多算法完成,这里以gradient magnitude为例。

3. 有了每一个pixel的强度后,我们可以利用一些算法,像是dynamic programming等等,找到图中数条强度较低的seams。

Seams 在gradient magnitude图中的样子:

Seams 在原始图片中的样子:

(从seams在原始图中的样子,我们可以看到所谓强度低的seam,基本上就可以表达照片中相对不重要的部分)

4. 接着我们把这些seams拿掉,就可以拿到一张缩小后的照片。

5. 若是我们需要放大图片,则我们可以在这些我们找到的seam的旁边,增加pixel,而pixel的value可以简单的取附近的pixel的平均。

在这个算法中,我们每次要找出一条照片中能量最小的seam,这里的能量可以想成是频率低,或者是照片中较为不重要的pixel。而找出seam的方法有很多种,我们可以利用dynamic programming或者其他算法完成。

以下为matlab的ref code,示范的是找出水平的seam后,放大图片。

相关

  • 伊本·鲁世德阿布·瓦利德·穆罕默德·伊本·阿马德·伊本·鲁世德(阿拉伯语:أبو الوليد محمد ابن احمد ابن رشد‎,1126年-1198年12月10日),又译为阿威罗伊、亚维侯
  • 爱德华八世爱德华八世(英语:Edward VIII,1894年6月23日-1972年5月28日),全名爱德华·阿尔伯特·克里斯蒂安·乔治·安德鲁·帕特里克·大卫(Edward Albert Christian George Andrew Patrick D
  • 呫吨酮氧杂蒽酮(英语:xanthone)也称为“呫吨酮”,是一种有机化合物,其分子式为C13H8O2。氧杂蒽酮可由水杨酸苯酯经加热制得。1939年,氧杂蒽酮开始被用于制造杀虫剂,后来用作苹果蠹蛾(codli
  • 发电机假说发电机理论或发电机原理(英语:Dynamo theory)是一个关于天体磁场的假说,人们相信地球磁场是由于地球外核中熔融铁、镍的对流以及整个行星自转的科里奥利力作用造成的。当导电流
  • 克里斯蒂娜·泽德尔鲍姆贝娅塔·玛格丽塔·克里斯蒂娜·泽德尔鲍姆(瑞典语:Beata Margareta Kristina Söderbaum,1912年9月5日-2001年2月12日)是一位在瑞典出生的德国电影女演员、监制和摄影师。她知名
  • 知母知母可以指:
  • 阿波罗12号阿波罗12号(Apollo 12)是美国国家航空航天局的阿波罗计划中的第六次载人任务,是人类第二次载人登月任务。替补成员同样接受任务训练,在主力成员因各种原因无法执行任务时接替。
  • 弗雷德里克·肖邦弗雷德里克·弗朗索瓦·肖邦(法语:Frédéric François Chopin,1810年3月1日-1849年10月17日),原名弗里德里克·弗朗齐歇克·肖邦(波兰语:Fryderyk Franciszek Chopin,亦称Szopen),波
  • 食管癌食管癌指的是发生在食道的癌症。常见的症状包括吞咽困难与体重减轻,其他症状还有吞咽疼痛、沙哑(英语:Hoarseness)、锁骨周边淋巴结肿大、干咳、以及咳血或吐血。有两大类食管癌
  • 钾离子钾离子(K+)是金属元素钾的阳离子。钾是人类营养中的一种必要宏量元素,也是动物细胞中主要的阳离子,同时在体液及电解质平衡上非常的重要。大量血浆(约每天180升)在肾脏的肾小球处