일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 너비 우선 탐색
- dfs
- 자바스크립트
- 플로이드 와샬
- lazy propagation
- 크루스칼
- 조합론
- 2023
- 우선 순위 큐
- 알고리즘
- dropout
- 다익스트라
- 이분 탐색
- 문자열
- pytorch
- back propagation
- 분할 정복
- 회고록
- 미래는_현재와_과거로
- Overfitting
- object detection
- 가끔은_말로
- c++
- tensorflow
- BFS
- 백트래킹
- 세그먼트 트리
- NEXT
- DP
- 가끔은 말로
- Today
- Total
Doby's Lab
Interpolation, cv2.resize() (Image Resize #2) 본문
Center Cropping을 하고 나서 궁금했던 점은 width와 height는 같아졌는데 input_shape와 맞지 않아서 어떻게 처리해야 할지가 의문이었습니다.
예를 들어 아래의 경우처럼 input_shape보다 작게 나와서 이미지를 확대해야 하는 경우가 있습니다.
그리고, 다른 경우는 input_shape보다 크게 나오는 바람에 이미지를 축소해야 하는 경우도 생깁니다.
확대와 축소 둘 다 방법이 떠오르지 않았었습니다. 그래서 확대를 해야 하는 경우는 Zero Padding을 하고, 축소는 input_shape에 맞게 Cropping을 해줘야겠다 싶었습니다.
Interpolation
OpenCV 라이브러리에서 제공하는 cv2.resize()로 이 문제를 해결할 수 있었습니다.
이때, Interpolation(보간법)이라는 개념이 등장합니다.
cv.resize(img,None,fx=2, fy=2, interpolation = cv.INTER_CUBIC)
확대를 하는 경우, 어떤 특정 픽셀 값을 주위의 픽셀들로부터 추정할 수 있고,
반대로 축소를 해야 할 때는 손실될 픽셀들을 어떻게 선정할지 추정할 수 있습니다.
이러한 방법을 Interpolation(보간법)이라고 합니다.
cv2.resize에는 5가지의 보간법을 제공합니다.
cv2.INTER_NEAREST
- 최근접의 이웃한 픽셀들을 참고하여 픽셀값을 추정합니다.
cv2.INTER_LINEAR
- 쌍선형 보간법으로 성능이 우수하며 시간적으로 빠릅니다.
cv2.INTER_CUBIC
- 바이큐빅 보간법으로 성능은 쌍선형보다 우수하지만 보다 느립니다.
cv2.INTER_LANCZOS4
- Lanczos 보간법은 더욱 복잡한 보간법으로 그만큼 성능이 더 우수합니다.
cv2.INTER_AREA
- 영역의 특징을 추출하여 결과를 지정합니다.
그래도 확대, 축소할 때 주로 쓰이는 보간법이 있습니다.
확대
- cv2.INTER_LINEAR
- cv2.INTER_CUBIC
축소
- cv2.INTER_AREA
Reference
https://m.blog.naver.com/vps32/221762092250
'Computer Vision (CV)' 카테고리의 다른 글
Selective Search에 대하여, Region Proposal (0) | 2023.02.09 |
---|---|
mAP (mean Average-Precision)에 대하여 (0) | 2023.02.07 |
Non-maximum Suppresion(비 최대 억제)에 대하여 (0) | 2023.02.05 |
IoU(Intersection over Union) 평가 지표에 대하여 (0) | 2023.02.05 |
Warping, Padding, Center Cropping (Image Resize #1) (0) | 2022.12.27 |