Python OpenCV 강좌 : 제 7강 - 확대 & 축소

   

이미지 피라미드 (Image Pyramid)


1 이미지 피라미드 (Image Pyramid)란 이미지의 크기를 변화시켜 원하는 단계까지 샘플링하는 작업입니다. 영상이나 이미지를 확대, 축소시켜 띄울 수 있습니다.



Main Code


import cv2

src = cv2.imread("Image/fruits.jpg", cv2.IMREAD_COLOR)

height, width, channel = src.shape
dst = cv2.pyrUp(src, dstsize=(width*2, height*2), borderType=cv2.BORDER_DEFAULT);
dst2 = cv2.pyrDown(src);

cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.imshow("dst2", dst2)
cv2.waitKey(0)
cv2.destroyAllWindows()



Detailed Code


width, height, channel = src.shape

height, width, channel = src.shape를 이용하여 해당 이미지의 높이, 너비, 채널의 값을 저장합니다.

너비높이를 이용하여 dstsize (결과 이미지 크기)을 설정합니다.



dst = cv2.pyrUp(src, dstsize=(width*2, height*2), borderType=cv2.BORDER_DEFAULT);

cv2.pyrUp(원본 이미지)로 이미지를 2배확대할 수 있습니다.

cv2.pyrUp(원본 이미지, 결과 이미지 크기, 픽셀 외삽법)을 의미합니다.

결과 이미지 크기pyrUp()함수일 경우, 이미지 크기의 2배로 사용합니다.

픽셀 외삽법은 이미지를 확대 또는 축소할 경우, 영역 밖의 픽셀은 추정해서 값을 할당해야합니다.

이미지 밖의 픽셀을 외삽하는데 사용되는 테두리 모드입니다. 외삽 방식을 설정합니다.



dst2 = cv2.pyrDown(src);

cv2.pyrDown(원본 이미지)로 이미지를 1/2배축소할 수 있습니다.

cv2.pyrUp() 함수와 동일한 매개변수를 가집니다.

결과 이미지 크기(width/2, height/2)를 사용해야합니다.



Additional Information


pyrUp()pyrDown() 함수에서 결과 이미지 크기픽셀 외삽법은 기본값으로 설정된 인수를 할당해야하므로 생략하여 사용합니다.

피라미드 함수에서 픽셀 외삽법cv2.BORDER_DEFAULT만 사용할 수 있습니다.

이미지를 1/8배, 1/4배 ,4배, 8배 등의 배율을 사용해야하는 경우, 반복문을 이용하여 적용할 수 있습니다.



Result


2



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python OpenCV 강좌 : 제 8강 - 크기 조절 ⤧  Previous post Python OpenCV 강좌 : 제 6강 - 회전