wawawaaw
안녕하세요
wawawaaw
전체 방문자
오늘
어제
  • 분류 전체보기 (33)
    • Programming (13)
      • Debugging (0)
      • Linux (5)
      • CUDA (5)
      • Git (1)
    • AI Research (14)
      • Tracking (2)
      • Object Detection (9)
      • Dataset (1)
      • GPU (2)
    • Paper Review (1)
    • 보안 (2)
    • Book Review (0)
    • Etc. (2)
      • 자격증 (1)

인기 글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
wawawaaw

안녕하세요

AI Research/Object Detection

[Object Detection] Python image padding 하는 방법

2023. 4. 8. 01:24
반응형

💡 Image padding 은 이미지의 주변을 검게 혹은 원하는 색으로 주변을 둘러싸는 것을 의미한다.

object detection을 하다보면 이미지의 크기를 맞추어주는 등의 이유로 image padding을 해야하는 경우가 생긴다.

본 포스팅에서는 cv2 라이브러리를 활용하여 image padding하는 여러가지 방법에 대해서 다룬다. 

 

1. cv2.copyMakeBorder 

import cv2 

path = '/이미지 경로/img.jpg'
image = cv2.imread(path) 

#이미지 padding
image = cv2.copyMakeBorder(image,10,10,10,10,cv2.BORDER_CONSTANT,None,value=0) 
img2 = cv2.copyMakeBorder(img, 50,50,50,50, borderType=cv2.BORDER_CONSTANT, value=(255,255,255,0))
  • cv2.copyMakeBorder 함수는 다음과 같은 parameter을 차례로 갖는다. 
    • src : 이미지 
    • top : top에 padding을 원하는 픽셀수 
    • bottom : bottom에 padding을 원하는 픽셀수 
    • left: left 에 padding을 원하는 픽셀수 
    • right : right 에 padding을 원하는 픽셀수
    • border type : padding 의 종류이다. 아래 예시 중류 중 골라서 border을 사용하면 된다. 
      • cv2.BORDER_CONSTANT : 하나의 색으로 padding 
      • cv2.BORDER_REFLECT  : 이미지를 반복해서 padding
    • dest : 이미지의 destimation 
    • value : BORDER_CONSTANT인 경우 색 

 

2. 새로운 black canvas 에  padding하고자 한 이미지를 append 하는 방법

import numpy as np

# Create a larger black colored canvas
canvas = np.zeros(512, 512, 3)

canvas[6:506, 6:506] = your_500_500_img
  • 원본 이미지 보다 더 큰 이미지를 만들어서 이미지 내부에 padding 하고 싶은 이미지를 넣는 방식이다. 
  • canvas 가 큰 이미지에 해당 
  • 사이에 your image를 넣은 것을 확인할 수 있다. 

 

3. numpy의 pad 함수를 활용한 방법 

import cv2
import numpy as np

img = cv2.imread("input.jpg")
gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
resized_digit = cv2.resize(gry, (18, 18))
padded_digit = np.pad(resized_digit, ((5, 5), (5, 5)), "constant", constant_values=0)
cv2.imshow("padded_digit", padded_digit)
cv2.waitKey(0)
반응형
저작자표시 비영리 변경금지 (새창열림)

'AI Research > Object Detection' 카테고리의 다른 글

[Object Detection] MMdetection으로 RPN 실행하기  (0) 2023.04.08
[Object Detection] Yolov5 dataloaders.py 코드 분석  (0) 2023.04.08
[Object Detection] 오픈소스로 detection 결과 mAP 측정하기  (0) 2023.01.13
[Object Detection] mmdetection의 input image size 변경하는 방법 (Faster r-cnn)  (0) 2022.12.28
[Object Detection] YOLOv5로 multi stream, multi camera object detection하는 법/ 동시에 여러 video detection 진행하기  (3) 2022.08.08
    'AI Research/Object Detection' 카테고리의 다른 글
    • [Object Detection] MMdetection으로 RPN 실행하기
    • [Object Detection] Yolov5 dataloaders.py 코드 분석
    • [Object Detection] 오픈소스로 detection 결과 mAP 측정하기
    • [Object Detection] mmdetection의 input image size 변경하는 방법 (Faster r-cnn)
    wawawaaw
    wawawaaw
    안녕하세요.

    티스토리툴바