接缝裁剪

✍ dations ◷ 2025-04-26 01:34:07 #图像处理

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

相关

  • 故意伤害在中华人民共和国法律中,故意伤害罪(英语:intentional assault)是指侵犯或者损害被害人身体的行为。被害人可以是一个健康人也可以是一个本身有疾病的人,而导致病情加重或者死亡
  • 子宫内膜异位症子宫内膜异位症(Endometriosis)属于妇科疾病,指的是本当存在于子宫内的内膜组织却在子宫外的其他地方生长,多数会在卵巢、输卵管以及子宫附近的组织,少数的情况也可能发生在身体
  • 毒 (消歧义)毒可能是指:
  • 小古猫属小古猫属(学名:Miacis),又名细齿兽,是一属已灭绝的细齿兽类,生存于6500-4200万年前的古新世晚期。它们代表了现今食肉目的祖先,小古猫有五爪,大小像鼬,生活在北美洲及欧洲大陆。它们
  • 炖是一种加汤汁慢煮的烹调方法。炖一般是先加调味蔬菜(中餐用葱姜,西餐用洋葱等)炒,然后加主料略炒,再加大量的清汤(水)和调味品,盖盖在小火上慢慢煮到酥烂。主料因地区和菜肴不同,可
  • 喷雾喷雾是喷入气体中的大量液滴。形成喷雾的过程称为喷雾化。喷雾喷嘴可以用来产生喷雾。喷雾的两个主要用途是在界面上分布材料以及产生具有液态表面的区域。在数千种应用中,喷
  • 外交危机中华民国外交危机,可以指:
  • 乡镇列表以下为中华人民共和国云南省乡级以上行政区(包括地级行政区、县级行政区、乡级行政区)列表:中华人民共和国县级以上行政区列表
  • 闽北语闽北语(闽北语: 閩北語,罗马字: Mâing-bă̤-ngṳ̌),又称闽北话(闽北语: 閩北事,罗马字: Mâing-bă̤-dī),是汉语族闽语支之下的一种语言,通行于福建北部地区(闽北地区),包括武夷山市、
  • 最佳男配角台湾金马奖最佳男配角每年由财团法人中华民国电影事业发展基金会颁发,给予年度最出色的华语电影中次要男演员之最高荣誉,得奖者被认为是具备相当演技实力的非关键演员,在一些电