photoprism/internal/config/config_faces.go
Michael Mayer e739dd3e89 Auth: Add support for config and routing extensions (WIP) #782 #2478
Enables developers to extend the existing config and API. Initial proof
of concept and work in progress. Implementation details may change.
Feedback welcome!

Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-07-05 23:13:34 +02:00

76 lines
2.1 KiB
Go

package config
import "github.com/photoprism/photoprism/internal/face"
// FaceSize returns the face size threshold in pixels.
func (c *Config) FaceSize() int {
if c.options.FaceSize < 20 || c.options.FaceSize > 10000 {
return face.SizeThreshold
}
return c.options.FaceSize
}
// FaceScore returns the face quality score threshold.
func (c *Config) FaceScore() float64 {
if c.options.FaceScore < 1 || c.options.FaceScore > 100 {
return face.ScoreThreshold
}
return c.options.FaceScore
}
// FaceOverlap returns the face area overlap threshold in percent.
func (c *Config) FaceOverlap() int {
if c.options.FaceOverlap < 1 || c.options.FaceOverlap > 100 {
return face.OverlapThreshold
}
return c.options.FaceOverlap
}
// FaceClusterSize returns the size threshold for faces forming a cluster in pixels.
func (c *Config) FaceClusterSize() int {
if c.NoSponsor() || c.options.FaceClusterSize < 20 || c.options.FaceClusterSize > 10000 {
return face.ClusterSizeThreshold
}
return c.options.FaceClusterSize
}
// FaceClusterScore returns the quality threshold for faces forming a cluster.
func (c *Config) FaceClusterScore() int {
if c.NoSponsor() || c.options.FaceClusterScore < 1 || c.options.FaceClusterScore > 100 {
return face.ClusterScoreThreshold
}
return c.options.FaceClusterScore
}
// FaceClusterCore returns the number of faces forming a cluster core.
func (c *Config) FaceClusterCore() int {
if c.NoSponsor() || c.options.FaceClusterCore < 1 || c.options.FaceClusterCore > 100 {
return face.ClusterCore
}
return c.options.FaceClusterCore
}
// FaceClusterDist returns the radius of faces forming a cluster core.
func (c *Config) FaceClusterDist() float64 {
if c.NoSponsor() || c.options.FaceClusterDist < 0.1 || c.options.FaceClusterDist > 1.5 {
return face.ClusterDist
}
return c.options.FaceClusterDist
}
// FaceMatchDist returns the offset distance when matching faces with clusters.
func (c *Config) FaceMatchDist() float64 {
if c.NoSponsor() || c.options.FaceMatchDist < 0.1 || c.options.FaceMatchDist > 1.5 {
return face.MatchDist
}
return c.options.FaceMatchDist
}