分景后配准

This commit is contained in:
nuknal
2024-11-01 09:19:42 +08:00
parent e51d07901d
commit 75e4dd6d90
7 changed files with 191 additions and 58 deletions

View File

@@ -10,6 +10,7 @@ import (
// align the image via Enhanced Correlation Coefficient (ECC) algorithm
func CV_ECCAlign(templateImage, inputImage gocv.Mat) gocv.Mat {
retMatType := templateImage.Type()
warpMode := gocv.MotionHomography
var warpMatrix gocv.Mat
switch warpMode {
@@ -27,7 +28,7 @@ func CV_ECCAlign(templateImage, inputImage gocv.Mat) gocv.Mat {
var mask = gocv.NewMat()
templateImage.ConvertTo(&templateImage, gocv.MatTypeCV32FC1)
inputImage.ConvertTo(&inputImage, gocv.MatTypeCV32FC1)
log.Info("cv::findTransformECC...")
retval := gocv.FindTransformECC(templateImage, inputImage, &warpMatrix, warpMode, criteria, mask, 5)
log.Info("cv::findTransformECC ret:", retval)
@@ -39,9 +40,9 @@ func CV_ECCAlign(templateImage, inputImage gocv.Mat) gocv.Mat {
gocv.WarpAffine(inputImage, &aligned, warpMatrix, sz)
}
aligned.ConvertTo(&aligned, gocv.MatTypeCV16U)
templateImage.ConvertTo(&templateImage, gocv.MatTypeCV16U)
inputImage.ConvertTo(&inputImage, gocv.MatTypeCV16U)
aligned.ConvertTo(&aligned, retMatType)
templateImage.ConvertTo(&templateImage, retMatType)
inputImage.ConvertTo(&inputImage, retMatType)
return aligned
}