Processor

【OpenCV】 확대와 축소

작성자 임베디드코리아 작성일26-04-16 21:28 조회90회 댓글0건
< *  확대 와 축소 * >

◆ 입력 이미지는 항상 동일한 크기가 아니며 너무 작거나 너무 클 수도 있다.
    ▷  만약 알고리즘에서 요구하는 해상도가 있다면 입력 이미지의 크기를 변경해 영상 처리를 진행해야 한다.
    ▷  또한, 검출하려는 객체가 너무 작거나 입력 이미지가 너무 큰 경우 입력 이미지 자체를 변환해서 영상 처리를 진행할 수도 있다.

◆ 이미지 확대와 축소는 이미지 피라미드(Image pyramid)를 활용해 이미지의 크기를 원하는 단계까지 샘플링하는 작업이다.
    ▷ 이미지 피라미드의 의미는 이미지의 크기를 확대하거나 축소했을 때 이미지들의 형태가 피라미드와 같이 표현된다.
◆ 원본 이미지에서 크기를 확대하는 것을 업 샘플링이라 하며 하위 단계의 이미지를 생성하게 된다.
◆ 반대로 원본 이미지에서 크기를 축소하는 것을 다운 샘플링이라 하며, 상위 단계의 이미지를 생성하게 된다.
◆ 이미지 피라미드로는 가우시안 피라미드(Gaussian Pyramid)와 라플라시안 피라미드(Laplacian pyramid)를 활용한다.


----< 예제 : Zoom_in-out.py  >------------------------------------------------------------------
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()
cv2.destroyAllWindows()
--------------------------------------------------------------------------------------------------------
▶ dst = cv2.pyrUp(src, dstsize=(width * 2, height * 2), borderType=cv2.BORDER_DEFAULT)
    : 이미지 확대 함수(cv2.pyrUp)로 이미지를 2배 확대할 수 있다.

▶ dst2 = cv2.pyrDown(src)
    : 이미지 축소 함수(cv2.pyrUp)로 이미지를 2배 축소할 수 있다.