[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 라이브러리를 사용하여 이미지를 읽고, 가우시안 피라미드 및 라플라시안 피라미드를 생성합니다. 이를 통해 이미지의 다양한 해상도 버전을 생성할 수 있습니다.