接缝裁剪

✍ dations ◷ 2025-02-23 20:41:26 #图像处理

接缝裁剪(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后,放大图片。

相关

  • 何杰金氏病霍奇金氏淋巴瘤(英语:Hodgkin's lymphoma)又称霍奇金氏病、何杰金氏病,或何杰金氏淋巴瘤,为淋巴瘤的一型,是一种淋巴细胞的癌变,症状包含发烧、夜间盗汗(英语:Night sweats),以及体重减
  • 汉越音陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 ‧  书法 ‧ 飞白书笔画 ‧ 
  • 三磷酸脱氧鸟苷去氧鸟苷三磷酸(Deoxyguanosine triphosphate;dGTP)是核苷三磷酸的一种,与鸟苷三磷酸相似,但少了一个氧原子。是合成DNA的原料之一。
  • 分娩期并发症分娩(childbirth)也称为生产,是指妇女怀孕之后,一个或多个胎儿离开母亲子宫,开始在子宫外生活的过程,可能是经由阴道的阴道分娩,也可能是剖宫产。全世界在2015年时有1.35亿人出生,其
  • 耕种农可以指:
  • 洛根县洛根县(Logan County, Colorado)是美国科罗拉多州东北部的一个县,北邻内布拉斯加州。面积4,778平方公里。根据美国2000年人口普查,共有人口20,504人。县治斯特林 (Sterling)。成
  • 路易希安那州路易斯安那州(法语:État de la Louisiane; 英语:State of Louisiana),简称路州,是美国的一个州,位于墨西哥湾沿岸。此州以对比强烈的文化、地理景观著名。如嘉年华会的狂欢和荒野
  • 次氟酸次氟酸指化学式为HOF的化合物。实际上,该名称并不准确,由于电负性的缘故,“次氟酸”中的氟仍为-1氧化态。参考其他含氟酸的名称,命名为“氟氧酸”似更为恰当。它可由水/冰以氟气
  • 孢子 (游戏)《孢子》(英语:Spore,港台常用英文)是一个Maxis开发的由多种游戏类型整合的电脑游戏。游戏让玩家控制一个物种,使之从单细胞开始进化到智慧生命,进而进行空间探索。特别版《孢子:银
  • 丹尼斯·霍珀丹尼斯·霍珀(Dennis Hopper,1936年5月17日-2010年5月29日),美国演员及电影制作人,因1969年的经典电影《逍遥骑士》()而知名。霍颇1950年代在影片《无因的反抗》(Rebel Without a Ca