接缝裁剪

✍ dations ◷ 2025-07-23 05:11:33 #图像处理

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

相关

  • 肾上腺素受体拮抗剂肾上腺素拮抗剂(英语:adrenergic antagonist)指的是抑制肾上腺素接受器(英语:adrenergic receptor)功能的药物。人体中有五个肾上腺素接受器,而这五个肾上腺素接受器又分为两类。α
  • 瓦兹河谷省瓦兹河谷省(法语:Val-d'Oise),或音译为瓦勒德瓦兹省,是法国法兰西岛大区所辖的省份。该省编号为95,属于巴黎的市郊地带。瓦兹河谷省的编号95不像法国其它省份那样按照字母顺序排列
  • 消防分队消防局,又称消防站、消拯局(消防拯救局),〈昔日俗称灭火局、救火队、水车馆〉,是一所放置消防设施及驻有消防员的建筑物。内里停放不同类型的消防车,作为救灾用途。部分地区的消
  • 富鸿业《日讲四书》十六卷、《诗文集》四卷富鸿基(1634年2月12日-1709年1月25日),榜名鸿业,字磐伯,号云麓,福建晋江人,清朝政治人物,进士出身。顺治十五年(1658年)登戊戌科进士,选翰林院庶吉士
  • 开平开平可以指:
  • 1860年美国总统选举詹姆斯·布坎南 民主党亚伯拉罕·林肯 共和党1860年美国总统选举是美国第19届总统选举,于1860年11月6日举行,选举结果由共和党人、前众议员亚伯拉罕·林肯取得180票过半数选
  • 哈罗德·霍尔特哈罗德·爱德华·霍尔特,CH(Harold Edward Holt,1908年8月5日-1967年12月17日),第17任澳大利亚总理,澳大利亚自由党政治家。1966年起任自由党领袖和澳大利亚总理,1967年在维多利亚州
  • 东9区UTC+09:00是一个时区,较世界协调时间快9小时。用于以下国家及地区:
  • 萨尔索马焦雷泰尔梅萨尔索马焦雷泰尔梅(意大利语:Salsomaggiore Terme),是意大利帕尔马省的一个市镇。总面积81.68平方公里,人口20146人,人口密度246.6人/平方公里(2009年)。ISTAT代码为034032。
  • 川村竹治川村竹治(かわむら たけじ,1871年7月17日-1955年9月8日),号亚洲,日本江刺县鹿角郡花轮村(今秋田县鹿角市)人,南满洲铁道株式会社社长、台湾总督、司法大臣。日本帝国秋田县人。1897年