接缝裁剪

✍ dations ◷ 2025-12-10 20:22:11 #图像处理

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

相关

  • ABWR先进沸水堆(英语:Advanced Boiling Water Reactor,简写ABWR;也译改良型沸水式反应堆),是一款符合第三代反应器规范的沸水反应堆。目前由通用电气(GEH)和东芝合作生产。如同以往的沸
  • 朴子市坐标:23°26′02″N 120°15′02″E / 23.433899°N 120.250671°E / 23.433899; 120.250671 (Puzih)朴子市(台湾话:.mw-parser-output .sans-serif{font-family:-apple-system
  • 扭矩在物理学里,作用力促使物体绕着转动轴或支点转动的趋向,称为力矩(torque),也就是扭转的力。转动力矩又称为转矩。力矩能够使物体改变其旋转运动。推挤或拖拉涉及到作用力 ,而扭转
  • 蒙古征战蒙古人占领大部分之欧亚大陆中亚(花剌子模) – 格鲁吉亚与亚美尼亚 – 伏尔加保加利亚(萨马拉弯 – 比拉尔) – 安纳托利亚(克塞山) – 欧洲(立陶宛(英语:Mongol invasions of L
  • 方孔钱方孔钱,又称“孔方钱”、“圆形方孔钱”、“方孔圆钱”,是古中国钱币中最常见的一种,一般以铜铸造,故俗称铜钱。方孔钱由圜钱演变而来,自秦朝统一货币,全国铸行半两钱之后,除王莽改
  • 大嘴蝠第一世代的宝可梦是指在1996年发售的《精灵宝可梦 红·绿》中引入的、也是该系列最初的151种虚构生物,下表列出第一世代的宝可梦,以游戏中名为“宝可梦图鉴”的百科全书所提供
  • 摩尔达维亚SSR摩尔达维亚苏维埃社会主义共和国(摩尔达维亚语/罗马尼亚语:Република Советикэ Сочиалистэ Молдовеняскэ/Republica Sovietică Soci
  • 信丰信丰县是中国江西省赣州市所辖的一个县。总面积为2878平方公里,2015年底人口为75万。唐朝永淳元年(公元682年)析南康县置南安县,是为建县之始。天宝元年(公元724年),因与泉州南安县
  • 安东尼奥·德·奥利维拉·萨拉查安东尼奥·德·奥利维拉·萨拉查(葡萄牙语:António de Oliveira Salazar;1889年4月28日-1970年7月27日),葡萄牙总理、葡萄牙总统,在1932年到1968年担任葡萄牙总理。作为一个训练有
  • 亲代抚育亲代抚育(英语:Parental care),亦作亲代照顾,是一个行为学和演化学的专有名词,指人类或动物的父母辈对其子女的抚育行为。按照演化学的理论:亲代抚育行为令父母辈对子女所投放的关