接缝裁剪

✍ dations ◷ 2025-11-25 01:01:48 #图像处理

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

相关

  • β内酰胺类抗生素β-内酰胺类抗生素(Beta-lactam antibiotic)是一种种类很广的抗生素,其中包括青霉素及其衍生物、头孢菌素、单酰胺环类(英语:monobactam)、碳青霉烯和青霉烯类酶抑制剂等。基本上
  • 放射化学放射化学(英语:Radiochemistry)是化学的一个分支,旨在研究那些参与化学反应的物质属于或带有放射性同位素的化学反应的一门学科。放射化学是关于放射性材料的化学;其中,放射性同位
  • 瑞典中央银行瑞典中央银行(瑞典语:Sveriges Riksbank、Riksbanken),又名瑞典国家银行、旧译瑞典银行,始创于1668年,是瑞典的中央银行,也是世界上历史最悠久的中央银行。在1968年成立三百周年时,
  • PP2蛋白磷酸酶2(英语:Protein phosphatase 2,简称PP2或PP2A)是由PPP2CA基因编码的蛋白磷酸酶。PP2A存在于很多组织中,为异三聚体,属于丝氨酸/苏氨酸磷酸酶,具有广泛的底物特异性和多样
  • 毕达哥拉斯学派毕达哥拉斯主义是一个用于描述毕达哥拉斯和他的追随者所持的秘教和形而上学的思想学说的术语。他们都深受数学所影响。毕达哥拉斯主义起源于公元前5世纪,对柏拉图主义有重要
  • 萨斯卡通萨斯卡通(Saskatoon),又译为沙斯加通,是一位于加拿大萨斯喀彻温省中部的城市,有南萨斯喀彻温河(South Saskatchewan River)以南北走向贯穿该市中央,分隔为东西两岸。萨市是萨省中最
  • 丁香树约20种丁香属(学名:Syringa),又称紫丁香属,该属多种植物的统称为丁香,别名“百结”、“情客”、“紫丁香”,生长于温带及寒带,落叶灌木或小乔木,圆球形树冠。单叶对生,卵圆形,圆锥花序,
  • 杨秋忠杨秋忠(1948年5月29日-),台湾男性微生物学家、中央研究院院士、教育部终生荣誉国家讲座主持人,现担任国立中兴大学土壤环境科学系兼任教授及讲座教授。致力于台湾微生物肥料研究
  • 第一机动舰队第一机动舰队(日语:第一機動艦隊/だいいちきどうかんたい Daigo Kidō Kantai ?)是旧日本海军的一支舰队编制。舰队编制存续期间,主官由第三舰队司令长官兼任。第一机动舰队是
  • 三穗县三穗县是中华人民共和国贵州省黔东南汉苗族侗族自治州东北部的一个县。面积1036平方公里,2002年人口20万。邮政编码556500,县政府驻八弓镇。与其接壤的有天柱县、剑河县、镇远