接缝裁剪

✍ dations ◷ 2025-04-04 11:17:49 #图像处理

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

相关

  • 肺出血肾炎综合征古德巴斯捷氏综合征(Goodpasture syndrome,GPS),又称古德巴斯捷氏病(Goodpasture's disease)、肺出血肾炎综合征、抗肾小球基底膜抗体病(anti-glomerular basement antibody diseas
  • 阿托品阿托品(Atropine),又称阿托平。是一种用来治疗神经毒气或杀虫剂中毒(英语:Pesticide poisoning)的药物,也用在某些心跳过缓,与手术时减少唾液分泌用,一般会以静脉注射或肌肉注射给药,
  • L03A·B·C·D·G·H·QI·J·L·M·N·P·R·S·VATC代码L03(免疫促进药)是解剖学治疗学及化学分类系统的一个药物分组,这是由世界卫生组织药物统计方法整合中心(The WHO Collabor
  • 1623年
  • 三尖瓣线三尖瓣线(tricuspoid)也称为Steiner曲线(Steiner curve),是有三个尖点的圆内螺线,是一个圆绕着直径为其三倍的圆内侧无滑动滚动时,圆上一点产生的一般旋轮线三尖瓣线也可以指有三个
  • 海霸王海霸王餐厅股份有限公司(简称:海霸王集团、海霸王)是1975年台湾高雄起家的餐厅,今已发展成涵盖餐旅与物流的海霸王国际企业王国。
  • 埃及广播电台埃及广播电视联盟(阿拉伯语:اتحاد الإذاعة والتليفزيون المصري‎;英语:Egyptian Radio and Television Union / ERTU),原名阿拉伯广播电视联盟。是
  • 2019冠状病毒病大阪府疫情2019冠状病毒病大阪府疫情(日语:大阪府における2019年コロナウイルス感染症の流行/おおさかふにおける2019ねんコロナウイルスかんせんしょうのりゅうこう),介绍日本的2019冠状病
  • 康拉德·冯·赫岑多夫弗朗茨·康拉德·冯·赫岑多夫伯爵(德语:Franz Graf Conrad von Hötzendorf,1852年11月11日-1925年8月25日)是一位奥地利陆军元帅,被认为是杰出的军事战略家,但同时也被认为战术能
  • 中医儿科学中医儿科学,是以中医学理论体系为指导,运用中国传统的中药、针灸、推拿等治疗方法,给儿童治病的一门学科。自1950年代中国成立中医药高等院校以来,中医儿科学都是中医临床教学的