Skip to content

Music-driven collage generator using OpenCV and audio emotion analysis.

Notifications You must be signed in to change notification settings

codedbyminjae/melody-collage-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎧 Melody Collage Engine


μŒμ•…μ˜ 흐름(밝기 Β· κ°•μ•½ Β· μ—λ„ˆμ§€)에 따라
μ΄λ―Έμ§€μ˜ 크기 Β· 채도 Β· νšŒμ „ Β· 투λͺ…도가 λ™μ μœΌλ‘œ λ³€ν™”ν•˜λ©°
OpenCV 기반 λ ˆμ΄μ–΄ λ°©μ‹μœΌλ‘œ μŒμ•… 기반 콜라주 μ•„νŠΈμ›Œν¬λ₯Ό μƒμ„±ν•˜λŠ” μ—”μ§„μž…λ‹ˆλ‹€.


πŸ“Œ Overview


이 ν”„λ‘œμ νŠΈλŠ” μŒμ•…μ„ 0.5초 λ‹¨μœ„λ‘œ λΆ„ν• ν•œ λ’€
각 κ΅¬κ°„μ˜ spectral brightness / energy / tempoλ₯Ό λΆ„μ„ν•˜μ—¬
μ΄λ―Έμ§€μ˜ μ‹œκ°μ  속성을 λ³€ν™”μ‹œν‚€λŠ” λ°©μ‹μœΌλ‘œ
μŒμ•…μ˜ 감정선과 흐름을 μ‹œκ°μ μœΌλ‘œ ν‘œν˜„ν•œ 콜라주λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.


πŸ› οΈ Tech Stack


  • Python 3
  • OpenCV β€” 이미지 λ³€ν™˜ Β· νšŒμ „ Β· λΈ”λ Œλ”©
  • NumPy β€” 수치 μ—°μ‚°
  • Librosa β€” μ˜€λ””μ˜€ 밝기 & μ—λ„ˆμ§€ 뢄석
  • Random β€” μœ„μΉ˜, 크기, νšŒμ „ κ°’ 생성

πŸ“ Project Structure


src/
main.py # μ—”μ§„ μ‹€ν–‰ 파일
audio.py # μ˜€λ””μ˜€ 뢄석(밝기/μ—λ„ˆμ§€)
image.py # 이미지 λ‘œλ” + 반볡 λ‘œλ”©
scaling.py # brightness β†’ scale λ³€ν™˜
collage.py # λ ˆμ΄μ–΄ 기반 콜라주 생성
rotate.py # κ²°κ³Ό 이미지 νšŒμ „ UI

data/
images/ # μž…λ ₯ 이미지
music/ # μž…λ ₯ μŒμ•…

results/
collage_preview.jpg # 프리뷰
collage_final.jpg # μ΅œμ’… κ²°κ³Όλ¬Ό


πŸš€ How It Works


1) Audio β†’ Brightness Extraction

  • μŒμ•…μ„ 0.5초 λ‹¨μœ„λ‘œ λΆ„ν• 
  • spectral centroid 기반 brightness 계산
  • energy & tempo 뢄석
  • 240개 segment둜 μ •κ·œν™”

2) Image Loading

  • λͺ¨λ“  이미지λ₯Ό μ§€μ • 크기둜 λ¦¬μ‚¬μ΄μ¦ˆ
  • λΆ€μ‘±ν•˜λ©΄ 순차 λ°˜λ³΅ν•˜μ—¬ 총 240μž₯ 확보

3) Brightness β†’ Scale Mapping

  • brightnessλ₯Ό 0~1둜 μ •κ·œν™”
  • μŠ€μΌ€μΌ 0.7 ~ 1.8 λ§€ν•‘
  • 이미지 크기 Β· 채도 Β· 투λͺ…도 반영

4) Layer-Based Artistic Collage

각 이미지에 λŒ€ν•΄ λ‹€μŒ 효과 적용:

  • 크기 μ‘°μ •
  • 채도 쑰절
  • 랜덀 νšŒμ „
  • 랜덀 μœ„μΉ˜ 배치
  • Ξ±-λΈ”λ Œλ”©

μŒμ•…μ˜ 감정 흐름을 λ ˆμ΄μ–΄ ꡬ쑰둜 μ‹œκ°μ μœΌλ‘œ ν‘œν˜„ν•©λ‹ˆλ‹€.


πŸ–ΌοΈ Output


results/
collage_final.jpg


▢️ Run the Engine


python src/main.py

🎨 Project Goal


μŒμ•…μ˜ 밝기, μ—λ„ˆμ§€, 리듬에 κΈ°λ°˜ν•˜μ—¬
λ™μ μœΌλ‘œ λ³€ν™”ν•˜λŠ” μ‹œκ°μ  콜라주 μ•„νŠΈμ›Œν¬λ₯Ό μƒμ„±ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.


πŸ“Œ Future Improvements


  • λ‹€μ–‘ν•œ μ˜€λ””μ˜€ νŠΉμ§• μΆ”κ°€ (MFCC, beat tracking λ“±)
  • 이미지 쀑첩 κ·œμΉ™ κ°œμ„ 
  • λ Œλ”λ§ 속도 μ΅œμ ν™”
  • GUI 기반 μ‹€μ‹œκ°„ μ•„νŠΈμ›Œν¬ 생성

πŸ“„ License


This project was developed for the μ˜μƒμ²˜λ¦¬ ν”„λ‘œκ·Έλž˜λ° course.

About

Music-driven collage generator using OpenCV and audio emotion analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages