接缝裁剪

✍ dations ◷ 2025-04-26 13:37:01 #图像处理

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

相关

  • 手是人或其他灵长类动物臂前端的一部分,由五只手指以及手掌组成,主要是用来抓和握住东西,两个手相互对称,互为镜像。除了天生有残缺或有增生,一般人有左手和右手各一,每只手有五只
  • 磷酸丙糖异构酶磷酸丙糖异构酶(Triose-phosphate isomerase,通常简称为TPI或TIM)是一种酶,能够催化二羟丙酮磷酸和D型甘油醛-3-磷酸,这两种丙糖磷酸异构体之间的可逆转换。磷酸丙糖异构酶在糖酵
  • 氦核作用氦核作用 (或α作用、α反应)是两种核聚变的类型之一,能将恒星的氦转换成重元素,另一种即是3氦过程(3α反应)。 当3氦反应进行时只需要氦的参与,而一旦有一些碳产生,能消耗氦的其他
  • 苜蓿褐斑苜蓿 Medicago arabica 天蓝苜蓿 Medicago lupulina 小苜蓿 Medicago minima 扣形苜蓿 Medicago orbicularis 南苜蓿 Medicago polymorpha 早花苜蓿 Medicago praecox M
  • 实相实相,汉传佛教术语,最早源自鸠摩罗什,它被用来代表诸法真实的相貌,意同于真如、法性、法界等。实相一词,源自于鸠摩罗什所译佛经,包括《小品般若经》、《妙法莲华经》、《中论》、
  • 洪武洪武(1368年-1399年)是明太祖朱元璋在位期间的年号,也是明朝的第一个年号。洪武年间全国没有战乱,社会迅速从元末的战乱中恢复,人口迅速增加,经济快速发展,史称洪武之治。明太祖朱元
  • 克里斯·杰弗里斯克里斯托弗·艾伦·杰弗里斯(英语:Christopher Allen Jefferies,1980年2月13日-),美国NBA联盟前职业篮球运动员。他在2002年的NBA选秀中第1轮第27顺位被洛杉矶湖人选中。
  • 室利佛逝泰国中部:泰国北部:泰国南部:三佛齐(阿拉伯语:سريفيجايا,爪哇语:ꦯꦿꦶꦮꦶꦗꦪ,?-1397年),中国古籍又称室利佛逝(梵文:श्रीविजय Sri Vijaya)、佛逝、旧港,在阿拉伯文献则
  • 中国科学技术史 (李约瑟)《中国科学技术史》(英语:Science and Civilization in China)乃李约瑟研究所李约瑟博士和国际学者们所编著的一套关于中国的科学技术历史的著作。李约瑟在书中列出中国人的发
  • 戴德姆 (马萨诸塞州)戴德姆(Dedham)位于美国马萨诸塞州东部,是诺福克县的县治所在,面积27.6平方公里。根据2000年美国人口普查,共有23,464人,其中白人占94.51%、亚裔美国人占1.87%、非裔美国人占1.54%