接缝裁剪

✍ dations ◷ 2025-12-04 21:17: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后,放大图片。

相关

  • 斯图尔特县斯图尔特县(Stewart County, Georgia)是美国乔治亚州西部的一个县,西邻阿拉巴马州。面积1,200平方公里。根据美国2000年人口普查,共有人口5,252人,2005年增至4,882人。县治兰普金
  • 比例尺比例尺(英语:scale)也叫做缩尺,是建筑、设计和测绘行业绘制平面图、设计图和地图等图纸时使用的工具,其主要功能是方便绘图人员在不借助计算器等工具的情况下,精确地在面积有限的
  • 农业部长美国农业部(英语:United States Department of Agriculture,缩写:USDA),是美国联邦政府的一个行政部门,该部通过对农业生产的支持,提高美国人民的生活质量。农业部前身是1862年5月15
  • 55年体制55年体制(日语:55年体制/ごじゅうごねんたいせい Gojūgonen Taisei */?)是指日本自1955年出现的一种政治格局,即长期维持自民党为执政党、社会党为最大在野党的稳定两党政治状
  • 2005年亚足联冠军联赛2005年亚足联冠军联赛共有 29 队来自亚洲 14 国顶级球会参加,最后沙特阿拉伯球会伊蒂哈德在决赛以两回合总比数 5–3 击败阿联酋球会艾恩成功卫冕。28 支队伍分成 7 组,每组 4
  • 兴化市兴化市是位于中国江苏省泰州市北部的一个县级市,位于长江、淮河、黄海和京杭大运河之间的里下河地域内,是中国百强县。兴化是商品粮、水产品生产与集散基地,又是一座古老的文化
  • 芝马墟芝马墟是印度尼西亚的城市,由西爪哇省负责管辖,位于该国东南部爪哇岛西部,距离首都雅加达180公里,面积48.42平方公里,海拔高度768米,2003年人口约483,000,人口密度为每平方公里9,97
  • 古罗马宗教古罗马宗教指在公元4世纪基督教成为罗马帝国合法宗教及国教之前,罗马人及罗马公民的宗教信仰。罗马人相信,每样东西都由神支配,宗教的目的是获得神协助和垂怜。用祈祷和奉献来
  • 市镇 (荷兰)荷兰政府与政治 系列条目市镇(荷兰语:Gemeente)是荷兰的第二级行政区划单位,也是排在荷兰政府(Rijksoverheid)和省之后的荷兰第三级以及最低级的管理层级。自2019年1月1日起,荷兰有
  • 圆叶目参见内文圆叶目(Cyclophyllidea)是绦虫纲下的一个目,该目下的物种主要营寄生。圆叶目下的寄生虫会对人畜的健康造成危害。圆叶目下有五个科,分别是: