Refine texture metrics and update default weights for premium pattern detection
This commit is contained in:
@@ -8,6 +8,7 @@ from .constants import (
|
||||
OVERLAY_COLOR,
|
||||
EXCLUDE_BG_COLOR,
|
||||
EXCLUDE_BG_TOLERANCE,
|
||||
WEIGHTS,
|
||||
PREVIEW_MAX_SIZE,
|
||||
RESET_EXCLUSIONS_ON_IMAGE_CHANGE,
|
||||
SUPPORTED_IMAGE_EXTENSIONS,
|
||||
@@ -20,7 +21,7 @@ __all__ = [
|
||||
"LANGUAGE",
|
||||
"OVERLAY_COLOR",
|
||||
"EXCLUDE_BG_COLOR",
|
||||
"EXCLUDE_BG_TOLERANCE",
|
||||
"WEIGHTS",
|
||||
"PREVIEW_MAX_SIZE",
|
||||
"RESET_EXCLUSIONS_ON_IMAGE_CHANGE",
|
||||
"SUPPORTED_IMAGE_EXTENSIONS",
|
||||
|
||||
@@ -101,6 +101,15 @@ _OPTION_DEFAULTS = {
|
||||
"exclude_bg_tolerance": 5,
|
||||
}
|
||||
|
||||
_WEIGHT_DEFAULTS = {
|
||||
"match_all": 20,
|
||||
"match_keep": 20,
|
||||
"brightness": 10,
|
||||
"grouping": 10,
|
||||
"continuity": 20,
|
||||
"border": 20,
|
||||
}
|
||||
|
||||
|
||||
def _extract_options(data: dict[str, Any]) -> dict[str, Any]:
|
||||
section = data.get("options")
|
||||
@@ -122,6 +131,18 @@ def _extract_options(data: dict[str, Any]) -> dict[str, Any]:
|
||||
return result
|
||||
|
||||
|
||||
def _extract_weights(data: dict[str, Any]) -> dict[str, int]:
|
||||
section = data.get("weights")
|
||||
if not isinstance(section, dict):
|
||||
return {}
|
||||
result: dict[str, int] = {}
|
||||
for key in _WEIGHT_DEFAULTS:
|
||||
value = section.get(key)
|
||||
if isinstance(value, int):
|
||||
result[key] = max(0, min(100, value))
|
||||
return result
|
||||
|
||||
|
||||
DEFAULTS = {**_DEFAULTS_BASE, **_extract_default_overrides(_CONFIG_DATA)}
|
||||
LANGUAGE = _extract_language(_CONFIG_DATA)
|
||||
OPTIONS = {**_OPTION_DEFAULTS, **_extract_options(_CONFIG_DATA)}
|
||||
@@ -129,3 +150,4 @@ RESET_EXCLUSIONS_ON_IMAGE_CHANGE = OPTIONS["reset_exclusions_on_image_change"]
|
||||
OVERLAY_COLOR = OPTIONS["overlay_color"]
|
||||
EXCLUDE_BG_COLOR = OPTIONS["exclude_bg_color"]
|
||||
EXCLUDE_BG_TOLERANCE = OPTIONS["exclude_bg_tolerance"]
|
||||
WEIGHTS = {**_WEIGHT_DEFAULTS, **_extract_weights(_CONFIG_DATA)}
|
||||
|
||||
Reference in New Issue
Block a user