FloorMaterialAnalyzer/internal/analyzer/interfaces.go

34 lines
1.0 KiB
Go
Raw Permalink Normal View History

2026-07-27 03:03:51 +00:00
package analyzer
import (
"context"
"image"
"materialanalyzer/internal/embedding"
"materialanalyzer/internal/model"
)
type ColorAnalyzer interface {
Analyze(ctx context.Context, img image.Image) (model.VisualFeatures, model.ColorHistogram, error)
}
type TextureAnalyzer interface {
Analyze(ctx context.Context, img image.Image) (model.TextureFeatures, error)
}
type StatisticsAnalyzer interface {
Analyze(ctx context.Context, img image.Image, visual model.VisualFeatures, texture model.TextureFeatures) (model.CanonicalStatistics, error)
}
type SemanticAnalyzer interface {
Analyze(ctx context.Context, imagePath string, product model.Product, visual model.VisualFeatures, texture model.TextureFeatures) (model.SemanticFeatures, error)
}
type EmbeddingAnalyzer interface {
Embed(ctx context.Context, req embedding.Request) (embedding.Result, error)
}
type MaterialAdapter interface {
Adapt(product model.Product, visual model.VisualFeatures, texture model.TextureFeatures, semantic model.SemanticFeatures) (map[string]interface{}, error)
}