[go] go 언어에서의 이미지 피라미드 생성
package main

import (
	"fmt"
	"gocv.io/x/gocv"
)

func main() {
	image := gocv.IMRead("image.jpg", gocv.IMReadColor)
	if image.Empty() {
		fmt.Println("이미지 파일을 읽을 수 없습니다")
		return
	}
	fmt.Println("원본 이미지 해상도:", image.Rows(), "x", image.Cols())

	// 가우시안 피라미드 생성
	gaussianPyramid := gocv.NewMat()
	gocv.PyrDown(image, &gaussianPyramid, image.Size())
	fmt.Println("가우시안 피라미드 1 해상도:", gaussianPyramid.Rows(), "x", gaussianPyramid.Cols())

	gocv.PyrDown(gaussianPyramid, &gaussianPyramid, gaussianPyramid.Size())
	fmt.Println("가우시안 피라미드 2 해상도:", gaussianPyramid.Rows(), "x", gaussianPyramid.Cols())

	// 라플라시안 피라미드 생성
	laplacianPyramid := gocv.NewMat()
	gocv.PyrUp(gaussianPyramid, &laplacianPyramid, gaussianPyramid.Size())
	fmt.Println("라플라시안 피라미드 1 해상도:", laplacianPyramid.Rows(), "x", laplacianPyramid.Cols())

	gocv.PyrUp(laplacianPyramid, &laplacianPyramid, laplacianPyramid.Size())
	fmt.Println("라플라시안 피라미드 2 해상도:", laplacianPyramid.Rows(), "x", laplacianPyramid.Cols())
}

이 코드는 gocv 라이브러리를 사용하여 이미지를 읽고, 가우시안 피라미드 및 라플라시안 피라미드를 생성합니다. 이를 통해 이미지의 다양한 해상도 버전을 생성할 수 있습니다.