different enhancement method for different sensor type

This commit is contained in:
nuknal
2024-07-18 10:24:07 +08:00
parent 17124e8396
commit 0d1fea2f5d
5 changed files with 21 additions and 13 deletions

View File

@@ -36,7 +36,7 @@ var fusCmd = &cobra.Command{
}
godal.RegisterAll()
producer.GTiffToJPG(filepath.Join(outputDir, fusedTiff), filepath.Join(outputDir, id+".jpg"), true)
producer.GTiffToJPG(filepath.Join(outputDir, fusedTiff), filepath.Join(outputDir, id+".jpg"), "FUS", true)
var report producer.Report
report.Satellite = "SJY01"

View File

@@ -35,7 +35,7 @@ type RadiationConfig struct {
}
type BrowserImgConfig struct {
Enhancement string `yaml:"enhancement" mapstructure:"enhancement"`
Enhancement map[string]string `yaml:"enhancement" mapstructure:"enhancement"`
CumulativeCutLower float64 `yaml:"cumulative_cut_lower" mapstructure:"cumulative_cut_lower"`
CumulativeCutUpper float64 `yaml:"cumulative_cut_upper" mapstructure:"cumulative_cut_upper"`
}
@@ -66,7 +66,11 @@ func init() {
HFBandStopWidth: 24,
},
BrowserImg: BrowserImgConfig{
Enhancement: "StretchToCumulativeCutMinMax",
Enhancement: map[string]string{
"MSS": "StretchToCumulativeCutMinMax",
"PAN": "StretchToMinimumMaximum",
"FUS": "StretchToCumulativeCutMinMax",
},
CumulativeCutLower: 0.01,
CumulativeCutUpper: 0.99,
},

View File

@@ -20,21 +20,21 @@ func TestGTiffToJPG(t *testing.T) {
godal.RegisterAll()
tiff := "../data/051622/006/MSS/SJY01_MSS_20240516_101236_051622_096_006.tiff"
jpg := "../data/051622/006/MSS/SJY01_MSS_20240516_101236_051622_096_006.jpg"
err := GTiffToJPG(tiff, jpg, false)
err := GTiffToJPG(tiff, jpg, "MSS", false)
if err != nil {
t.Error(err)
}
tiff = "../data/051622/006/PAN/SJY01_PAN_20240516_101236_051622_096_006.tiff"
jpg = "../data/051622/006/PAN/SJY01_PAN_20240516_101236_051622_096_006.jpg"
err = GTiffToJPG(tiff, jpg, false)
err = GTiffToJPG(tiff, jpg, "PAN", false)
if err != nil {
t.Error(err)
}
tiff = "../data/051622/006/FUS/SJY01_FUS_20240516_101236_051622_096_006.tiff"
jpg = "../data/051622/006/FUS/SJY01_FUS_20240516_101236_051622_096_006.jpg"
err = GTiffToJPG(tiff, jpg, true)
err = GTiffToJPG(tiff, jpg, "FUS", true)
if err != nil {
t.Error(err)
}

View File

@@ -11,7 +11,7 @@ import (
"starwiz.cn/sjy01/image-proc/pkg/config"
)
func GTiffToJPG(ftiff, fjpg string, reversed bool) error {
func GTiffToJPG(ftiff, fjpg, sensor string, reversed bool) error {
// 打开 TIFF 文件
ds, err := godal.Open(ftiff)
if err != nil {
@@ -58,8 +58,12 @@ func GTiffToJPG(ftiff, fjpg string, reversed bool) error {
}
channels := gocv.Split(img)
enhancement, ok := config.GCONFIG.BrowserImg.Enhancement[sensor]
if !ok {
enhancement = "NoEnhancement"
}
for i, ch := range channels {
switch config.GCONFIG.BrowserImg.Enhancement {
switch enhancement {
case StretchToCumulativeCutMinMax:
channels[i] = cumulativeCountCutEnhancement(ch,
config.GCONFIG.BrowserImg.CumulativeCutLower,

View File

@@ -169,7 +169,7 @@ func (r *Registrator) SaveScenesToTiff(panScenes []*Scene, mssScenes []*Scene) e
metaFile := strings.Replace(scene.Tiff, ".tiff", ".meta.xml", 1)
r.writeProductMeta(scene.Meta, metaFile)
jpg := strings.Replace(scene.Tiff, ".tiff", ".jpg", 1)
GTiffToJPG(scene.Tiff, jpg, false)
GTiffToJPG(scene.Tiff, jpg, "PAN", false)
r.report.Scenes = append(r.report.Scenes, ReportScene{
Name: scene.SceneId,
TiffData: scene.Tiff,
@@ -219,7 +219,7 @@ func (r *Registrator) SaveScenesToTiff(panScenes []*Scene, mssScenes []*Scene) e
metaFile := strings.Replace(scene.Tiff, ".tiff", ".meta.xml", 1)
r.writeProductMeta(scene.Meta, metaFile)
jpg := strings.Replace(scene.Tiff, ".tiff", ".jpg", 1)
GTiffToJPG(scene.Tiff, jpg, false)
GTiffToJPG(scene.Tiff, jpg, "MSS", false)
r.report.Scenes = append(r.report.Scenes, ReportScene{
Name: scene.SceneId,
TiffData: scene.Tiff,
@@ -240,7 +240,7 @@ func (r *Registrator) DoScenePansharpen(panScenes []*Scene, mssScenes []*Scene)
}
jpg := strings.Replace(fusedTiff, ".tiff", ".jpg", 1)
GTiffToJPG(fusedTiff, jpg, true)
GTiffToJPG(fusedTiff, jpg, "FUS", true)
r.report.Scenes = append(r.report.Scenes, ReportScene{
TiffData: fusedTiff,
Name: strings.TrimSuffix(filepath.Base(fusedTiff), ".tiff"),