This commit is contained in:
nuknal
2024-05-25 19:56:37 +08:00
parent e3d98cb959
commit e9286e238b
5 changed files with 19 additions and 67 deletions

View File

@@ -1,4 +1,4 @@
package main
package imageproc
import (
"bufio"
@@ -127,18 +127,6 @@ func (r *Registrator) DoDownPhaseCorrelation() error {
downsampledPanImage := gocv.NewMat()
gocv.Resize(r.PanImage, &downsampledPanImage,
image.Point{X: r.MssWidth, Y: r.MssHeight}, 0, 0, gocv.InterpolationLinear)
// 对每个 MSS 波段图像进行上采样
// upsampledMSSImages := make([]gocv.Mat, MssBands)
for i := 0; i < MssBands; i++ {
// upsampledMSSImages[i] = gocv.NewMat()
// gocv.Resize(r.MssImages[i], &upsampledMSSImages[i],
// image.Point{X: r.PanWidth, Y: r.PanHeight}, 0, 0, gocv.InterpolationLinear)
// r.msToRaw(upsampledMSSImages[i].ToBytes(), fmt.Sprintf("MSS%d.RAW", i+1))
}
fmt.Println("down sampled PAN images size:", downsampledPanImage.Size())
// 分块高度
@@ -178,29 +166,28 @@ func (r *Registrator) DoDownPhaseCorrelation() error {
}
}
alignedMssData, err := r.DoMssPhaseShift()
if err != nil {
if err := r.DoMssPhaseShift(); err != nil {
log.Error("Error calculating MSS phase shift: ", err)
return err
}
r.mssToRaw(alignedMssData)
// r.bytesToRaw(r.PanImage.ToBytes(), "data/PAN.RAW")
// r.SavePanToGDALGTiff("data/pan.tiff")
r.SaveRegisteredMssToGDALGTiff("data/registered_mss.tiff")
return nil
}
func (r *Registrator) mssToRaw(mssData [][]byte) error {
f, err := os.OpenFile("data/downsampled_registered_mss.RAW", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0777)
func (r *Registrator) SaveRegisteredMssToRaw(raw string) error {
f, err := os.OpenFile(raw, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0777)
if err != nil {
return err
}
var mssData [4][]byte
for i := 0; i < MssBands; i++ {
mssData[i] = r.registeredMssImages[i].ToBytes()
}
width := r.MssWidth * PixelBytes
height := r.MssHeight
log.Println("Writing downsampled registered MSS to RAW file...", len(mssData[0])*4)
log.Println("Writing registered MSS to RAW file...", len(mssData[0])*4)
log.Println("width:", width)
log.Println("height:", height)
w := bufio.NewWriter(f)
@@ -226,7 +213,7 @@ func (r *Registrator) bytesToRaw(mssData []byte, filePath string) error {
}
func (r *Registrator) SaveRegisteredMssToGDALGTiff(tiffFile string) error {
log.Println("Saving registered MSS to TIFF file...")
log.Println("Saving registered MSS to TIFF file:", tiffFile)
width := r.MssWidth
height := r.MssHeight
@@ -287,13 +274,13 @@ func (r *Registrator) SaveRegisteredMssToGDALGTiff(tiffFile string) error {
}
}
log.Info("saved registered mss to tiff file: ", tiffFile)
log.Info("Saved registered mss to ", tiffFile)
return nil
}
func (r *Registrator) SavePanToGDALGTiff(tiffFile string) error {
log.Println("Saving PAN image to TIFF file...")
log.Println("Saving PAN image to TIFF file:", tiffFile)
width := r.PanWidth
height := r.PanHeight
@@ -325,7 +312,7 @@ func (r *Registrator) SavePanToGDALGTiff(tiffFile string) error {
return err
}
log.Info("saved pan image to tiff file: ", tiffFile)
log.Info("Saved pan image to ", tiffFile)
return nil
}