Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이미지프로세싱
- 스플라인
- functional data analysis
- high-dimensional data analysis
- 데이터사이언스
- 이미지대비
- datascience
- simulation
- Data Analysis
- 데이터분석
- 이미지처리
- data science
- gray level resolution
- high dimensional data analysis
- 고차원데이터분석
- big data
- bitdepth
- OpenCV
- 고차원데이터
- 이미지콘볼루션
- 이미지스트레칭
- 미국온라인석사
- 이미지변환
- OMSA
- 빅데이터
- 모델링
- 이미지향상
- 함수형데이터분석
- 시뮬레이션
- 이미지분석
Archives
- Today
- Total
곤약노트
이미지 변환 (Image Transformation) ④Gray Level Resolution (Bit Depth) 완전 이해하기 본문
Data Science/High-Dimensional Data Analytics
이미지 변환 (Image Transformation) ④Gray Level Resolution (Bit Depth) 완전 이해하기
곤약처럼 부드럽게, 쫀쫀하게 2025. 7. 5. 09:00디지털 이미지에서 Gray level resolution이란 회색조의 단계 수, 즉 밝기를 얼마나 세밀하게 표현할 수 있는가를 의미합니다. 이 정밀도는 1픽셀당 몇 비트를 사용하는가(bits per pixel, bpp)에 따라 결정됩니다.
\( L = 2^{\text{bpp}} \)
- bpp: 한 픽셀을 표현하는 데 쓰이는 비트 수
- L: 표현 가능한 밝기 단계 수 (gray level)
| bbp | 표현 가능한 단계 수 |
| 1 | 2단계 (0, 1) = 흑백만 |
| 8 | 256단계 (0~255) = 일반 회색조 이미지 |
| 4 | 16단계 등 |
*bit depth가 높을수록 더 부드러운 이미지, 낮을수록 정보가 손실된 이미지
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 1. Grayscale 이미지 불러오기
image = cv2.imread('watermelon.jpg', cv2.IMREAD_GRAYSCALE)
# 2. 서로 다른 bit depth로 양자화 (비트 수 감소)
def quantize(image, bpp):
levels = 2 ** bpp
step = 256 // levels
quantized = (image // step) * step
return quantized
bpp_values = [1, 2, 4, 8]
quantized_images = [quantize(image, bpp) for bpp in bpp_values]
# 3. 시각화
plt.figure(figsize=(12, 6))
for i, (img, bpp) in enumerate(zip(quantized_images, bpp_values)):
plt.subplot(1, len(bpp_values), i+1)
plt.imshow(img, cmap='gray', vmin=0, vmax=255)
plt.title(f'{bpp}-bit ({2**bpp} levels)')
plt.axis('off')
plt.suptitle('Gray Level Resolution by Bit Depth')
plt.tight_layout()
plt.show()

