본문 바로가기
파이썬

파이썬 opencv python에서 이미지 주위에 테두리를 추가하는 방법

by º기록 2020. 11. 6.
반응형

아래와 같은 이미지가있는 경우 최종 이미지의 전체 높이와 너비는 증가하지만 원본 이미지의 높이와 너비는 중간에 그대로 유지되도록 이미지 주위에 테두리를 추가하려면 어떻게해야합니까?


 

해결 방법

 

다음 코드는 원본 이미지의 네면 모두에 10 픽셀 크기의 상수 테두리를 추가합니다.

색상의 경우 이미지의 아래쪽 두 줄의 평균값에서 계산 한 배경의 평균 회색 값을 사용하고 싶다고 가정했습니다. 죄송합니다. 다소 하드 코딩되었지만 일반적인 방법을 보여 주며 필요에 맞게 조정할 수 있습니다.

아래쪽과 오른쪽에 대한 bordersize 값을 0으로 남겨두면 대칭 테두리가 생깁니다.

BORDER_DEFAULT, BORDER_REPLICATE, BORDER_WRAP와 같은 BORDER_TYPE에 대한 다른 값도 가능합니다.


import numpy as np
import cv2

im = cv2.imread('image.jpg')
row, col = im.shape[:2]
bottom = im[row-2:row, 0:col]
mean = cv2.mean(bottom)[0]

bordersize = 10
border = cv2.copyMakeBorder(
    im,
    top=bordersize,
    bottom=bordersize,
    left=bordersize,
    right=bordersize,
    borderType=cv2.BORDER_CONSTANT,
    value=[mean, mean, mean]
)

cv2.imshow('image', im)
cv2.imshow('bottom', bottom)
cv2.imshow('border', border)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

참조 페이지 https://stackoverflow.com/questions/36255654

 

 

반응형

댓글