refactor
This commit is contained in:
@@ -37,7 +37,7 @@ const (
|
||||
|
||||
type ResampleMethod string
|
||||
|
||||
type Registrator struct {
|
||||
type ImgProc struct {
|
||||
Params Params
|
||||
|
||||
PanImage gocv.Mat
|
||||
@@ -69,14 +69,14 @@ type Registrator struct {
|
||||
report Report
|
||||
}
|
||||
|
||||
func NewRegistrator(rsmethod ResampleMethod) *Registrator {
|
||||
var r Registrator
|
||||
func NewImgProc(rsmethod ResampleMethod) *ImgProc {
|
||||
var r ImgProc
|
||||
r.resampleMethod = rsmethod
|
||||
|
||||
return &r
|
||||
}
|
||||
|
||||
func (r *Registrator) LoadPanRaw() error {
|
||||
func (r *ImgProc) LoadPanRaw() error {
|
||||
data, err := os.ReadFile(r.Params.PanRawFile)
|
||||
if err != nil {
|
||||
log.Error("Error reading raw file: ", err)
|
||||
@@ -111,7 +111,7 @@ func (r *Registrator) LoadPanRaw() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Registrator) LoadMssRaw() error {
|
||||
func (r *ImgProc) LoadMssRaw() error {
|
||||
data, err := os.ReadFile(r.Params.MssRawFile)
|
||||
if err != nil {
|
||||
log.Error("Error reading raw file: ", err)
|
||||
@@ -141,7 +141,7 @@ func (r *Registrator) LoadMssRaw() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Registrator) DoPhaseCorrelation() error {
|
||||
func (r *ImgProc) DoPhaseCorrelation() error {
|
||||
switch r.resampleMethod {
|
||||
case UpSampled:
|
||||
return r.CalcUpPhaseCorrelation()
|
||||
@@ -151,7 +151,7 @@ func (r *Registrator) DoPhaseCorrelation() error {
|
||||
}
|
||||
|
||||
// 将PAN降采样后计算相位相关的偏移量
|
||||
func (r *Registrator) CalcDownPhaseCorrelation() error {
|
||||
func (r *ImgProc) CalcDownPhaseCorrelation() error {
|
||||
// 确保 MSS 高度是 PAN 高度的 1/4
|
||||
if r.MssHeight*4 != r.PanHeight {
|
||||
err := fmt.Errorf("MSS height is not 1/4 of PAN height, invalid raw file")
|
||||
@@ -209,7 +209,7 @@ func (r *Registrator) CalcDownPhaseCorrelation() error {
|
||||
}
|
||||
|
||||
// 将MSS升采样采样后计算相位相关的偏移量
|
||||
func (r *Registrator) CalcUpPhaseCorrelation() error {
|
||||
func (r *ImgProc) CalcUpPhaseCorrelation() error {
|
||||
log.Fatal("unsuppotted up-resample method")
|
||||
// 确保 MSS 高度是 PAN 高度的 1/4
|
||||
if r.MssHeight*4 != r.PanHeight {
|
||||
@@ -249,7 +249,7 @@ func (r *Registrator) CalcUpPhaseCorrelation() error {
|
||||
return r.DoPANCoRegistration()
|
||||
}
|
||||
|
||||
func (r *Registrator) doPhaseCorrelation(base gocv.Mat,
|
||||
func (r *ImgProc) doPhaseCorrelation(base gocv.Mat,
|
||||
mssImages []gocv.Mat,
|
||||
height, width,
|
||||
blockHeight, blockWidth int) error {
|
||||
@@ -327,7 +327,7 @@ func (r *Registrator) doPhaseCorrelation(base gocv.Mat,
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Registrator) Clean() {
|
||||
func (r *ImgProc) Clean() {
|
||||
r.PanImage.Close()
|
||||
for i := 0; i < MssBands; i++ {
|
||||
r.MssImages[i].Close()
|
||||
@@ -340,7 +340,7 @@ func (r *Registrator) Clean() {
|
||||
r.rgbirImage.Close()
|
||||
}
|
||||
|
||||
func (r *Registrator) calcMSSDeltaCoeffs(bands int) error {
|
||||
func (r *ImgProc) calcMSSDeltaCoeffs(bands int) error {
|
||||
// 计算每个通道的delta多项式拟合系数
|
||||
for i := 0; i < bands; i++ {
|
||||
var cx []float64
|
||||
@@ -397,7 +397,7 @@ func (r *Registrator) calcMSSDeltaCoeffs(bands int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Registrator) DoMSSCoRegistration(byEdge bool) error {
|
||||
func (r *ImgProc) DoMSSCoRegistration(byEdge bool) error {
|
||||
for band := 0; band < MssBands; band++ {
|
||||
if len(r.deltaXCoeffs[band]) < 2 || len(r.deltaYCoeffs[band]) < 3 {
|
||||
log.Errorf("delta coefficients not calculated, skip co-registration %d", band+1)
|
||||
@@ -456,7 +456,7 @@ func (r *Registrator) DoMSSCoRegistration(byEdge bool) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Registrator) DoPANCoRegistration() error {
|
||||
func (r *ImgProc) DoPANCoRegistration() error {
|
||||
if len(r.deltaXCoeffs[0]) < 2 || len(r.deltaYCoeffs[0]) < 3 {
|
||||
log.Error("delta coefficients not calculated, skip co-registration")
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user