- 修改 ImageDir 函数增加 darkScore 和 lightScore 参数 - 实现 BrightnessName 函数计算明暗等级 - 定义暗色和亮色阈值等级数组 - 在 organize.go 中集成图片明暗分析逻辑 - 使用 ITU-R BT.601 公式计算像素亮度 - 为大图实现自动采样加速分析 - 更新 README.md 文档说明明暗分类算法 - 在目录结构中体现明暗等级命名规则
36 lines
970 B
Go
36 lines
970 B
Go
package classify
|
|
|
|
import "fmt"
|
|
|
|
// 暗色阈值等级(从高到低)
|
|
var darkThresholds = []int{100, 95, 85, 75, 65, 55}
|
|
|
|
// 亮色阈值等级(从高到低)
|
|
var brightThresholds = []int{85, 75, 65, 55, 45, 35, 25, 15}
|
|
|
|
// BrightnessName 按主导分判定明暗等级,返回如 "dark_100" / "bright_85"。
|
|
// 亮色主导(lightScore > darkScore)归 bright,否则归 dark,每张图必归亮暗之一。
|
|
func BrightnessName(darkScore, lightScore float64) string {
|
|
darkLowest := darkThresholds[len(darkThresholds)-1]
|
|
brightLowest := brightThresholds[len(brightThresholds)-1]
|
|
|
|
if lightScore > darkScore {
|
|
picked := brightLowest
|
|
for _, t := range brightThresholds {
|
|
if lightScore >= float64(t)/100.0 {
|
|
picked = t
|
|
break
|
|
}
|
|
}
|
|
return fmt.Sprintf("bright_%d", picked)
|
|
}
|
|
picked := darkLowest
|
|
for _, t := range darkThresholds {
|
|
if darkScore >= float64(t)/100.0 {
|
|
picked = t
|
|
break
|
|
}
|
|
}
|
|
return fmt.Sprintf("dark_%d", picked)
|
|
}
|