Recent Posts
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
- Front
- ML
- 알고리즘
- dl
- nerf
- Vision
- FineGrained
- Torch
- computervision
- 3d
- 자료구조
- Depth estimation
- clean code
- classification
- algorithm
- pytorch
- 딥러닝
- GAN
- math
- CV
- 머신러닝
- SSL
- cs
- PRML
- Meta Learning
- Python
- REACT
- web
- nlp
- FGVC
- Today
- Total
KalelPark's LAB
[ OpenCV ] 여러가지 Pyramid Method 본문
OpenCV에서는, 이미지를 단계적으로 축소하는 Module이 존재합니다. 이를, 이미지 피라미드(Image Pyramid)라고 하는데
피라미드처럼, 단계적으로 확대하거나 축소하는 작업을 말합니다.
Pyramid 방식에는 2가지가 존재합니다.
- Gaussian Filter (가우시안 Method)
- Gaussian Filter를 적용한 뒤, 이미지 피라미드를 구성하는 것을 의미하고, 아래와 같이 활용합니다.
* DownSampling의 예이며, 입력 영상을 dst parameter에 따라 이미지를 변환합니다.
pyrDown()은 가우시안 필터를 적용한 뒤 모든 짝수 행과 열을 삭제하고, 입력 영상을 축소합니다. 반면 cv2.pyrUp()은 0으로 채워진 행정방행렬을 삽입하고 주변 픽셀과 유사한 값으로 채우는 방식으로 크기를 확대합니다.
def downsample_image(image, reduce_factor):
for i in range(reduce_factor):
if len(image.shape) > 2:
row, col = image.shape[:2]
else:
row, col = image.shape
image = cv2.pyrDown(image, dstsize = (col // 2, row // 2))
return image
- Laplacian Pyramid (라플라스 Method)
* pyr.Up()의 경우 화질이 상당히 떨어지는데 이러한 문제를 개선하기 위한 방법입니다. cv2.pyrUp()을 적용한 이미지와 원본 이미지간의 차이를 cv2.pyrUp()을 적용한 이미지에 값을 더해주는 방식입니다.
def laplaoce_pyramid_image(image):
small, big = cv2.pyrDown(img), cv2.pyrUp(img)
laplacian = cv2.subtract(img, big)
recon_img = bigger + laplacian
return recon_img
'Python > OpenCV' 카테고리의 다른 글
[ OpenCV ] cv2.imread() flag Parameter란? (0) | 2023.01.04 |
---|
Comments