Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Seam Carving 算法
Search
shhhz
September 29, 2021
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Seam Carving 算法
如何能改变图像大小的同时尽可能保留图片主体? Seam Carving 算法可以解决这个问题。
shhhz
September 29, 2021
More Decks by shhhz
See All by shhhz
概率与随机
shhhz
0
67
游戏中的奥秘
shhhz
0
69
正则表达式
shhhz
0
55
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
From π to Pie charts
rasagy
1
400
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
How GitHub (no longer) Works
holman
316
150k
The Curious Case for Waylosing
cassininazir
1
570
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Abbi's Birthday
coloredviolet
4
10k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Music & Morning Musume
bryan
48
7.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Transcript
Seam Carving Algorithm @Rick Sun
Aspect Ratio Changed Crop Original Scale
Content-aware Resizing Seam Carving Original
Example
Humans Vision 落款 富⼠⼭ 波浪
Computer Vision
Pixel Colors
Energy e(x) 192 Energy: 值越⼤,表示该像素与周围像素对比越⼤。 Energy function
Energy Map Energy function
Energy Map
? How to resize? 哪些像素需要被删除?
1. Optimal 依次删除 energy 最小的像素
2. Pixel 每⾏移除等量 energy 最小的像素
3. Seam 每次移除⼀条 energy 之和最小的 seam
3. Seam 什么是连续? 8 连通路径(8-connected path )
Seam Carving Recipe 1. 计算每个像素的 energy, ⽣成 energy map。 2.
找出 seam 并删除。 3. 未达到终⽌条件,回到第 1 步。
Implements Energy Function 01 Find Seam 02
Energy Function 1. 2.
Energy Function 3. Image Kernels RGB -> Grayscale Grayscale =
(R + G + B ) / 3. Grayscale = 0.299R + 0.587G + 0.114B Kernels
Refer: https://setosa.io/ev/image-kernels/
Implements Energy Function 01 Find Seam 02
Find Seam
Find Seam Brute-force search O(w * 3^h) O(w + h)
The greedy approach
Dynamic Programming Those who can not remember the past are
condemned to repeat it.
Dynamic Programming Those who can not remember the past are
condemned to repeat it. Stairs Problem Go up one step or two steps at a time House Robber Problem • You are a robber who has found a block of houses to rob. • You cannot rob two adjacent houses.
Energy Map Find Seam Seam Energies ? 80+45 seam[i][j] =
EnergyMap[i][j] + Min(seam[i-1][j-1], seam[i-1][j], seam[i-1][j+1]) 45 405 35 275 1o5 25 100 25 40 5 20
Find Seam
Seam Energies 100 25 130 275 Find Seam interface SeamEnergyCell
{ i: number; j: number; energy: number; prev: SeamEnergyCell | null; } 45 35 50 10
Other Applications Object Label 01 Image Enlarging 02
Object Removal Set energy to -Infinity
Object Protect Set energy to +Infinity
Image Enlarging Repeat Seam Repeat K Seams
Top K Problem Find Top K largest numbers O(n log
n) 1. Sort 2. Heap sort
Heap • Max Heap Build Heap Get root Heapify O(
n) + kO(log n) • Min Heap 8 9 5 Build Heap K Add Heap if lt root 8 9 7 Add Skip O( k) + (n - k)O(log k)
3. Quick select Top K Problem O( n) K th?
Thanks!