diff --git a/dist/utils/maskSemanticPalette.d.ts.map b/dist/utils/maskSemanticPalette.d.ts.map index f0a14d6..c0857b5 100644 --- a/dist/utils/maskSemanticPalette.d.ts.map +++ b/dist/utils/maskSemanticPalette.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"maskSemanticPalette.d.ts","sourceRoot":"","sources":["../../src/utils/maskSemanticPalette.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAUnD,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAiEnD,wCAAwC;AACxC,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CA8BR;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAGlF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAYT;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,qBAAqB;AACrB,eAAO,MAAM,0BAA0B,aAAuC,CAAC;AAE/E,eAAe;AACf,eAAO,MAAM,eAAe,aAM1B,CAAC;AAEH,iBAAiB;AACjB,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,CAAC,CAExD;AAED,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9C;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEjD"} \ No newline at end of file +{"version":3,"file":"maskSemanticPalette.d.ts","sourceRoot":"","sources":["../../src/utils/maskSemanticPalette.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAUnD,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAc,CAAC;AA8EnD,wCAAwC;AACxC,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CA8BR;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAGlF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAYT;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,qBAAqB;AACrB,eAAO,MAAM,0BAA0B,aAAuC,CAAC;AAE/E,eAAe;AACf,eAAO,MAAM,eAAe,aAM1B,CAAC;AAEH,iBAAiB;AACjB,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,CAAC,CAExD;AAED,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9C;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEjD"} \ No newline at end of file diff --git a/dist/utils/maskSemanticPalette.js b/dist/utils/maskSemanticPalette.js index 34c183a..eedd912 100644 --- a/dist/utils/maskSemanticPalette.js +++ b/dist/utils/maskSemanticPalette.js @@ -24,6 +24,13 @@ function buildSemanticRgb(colors) { }, })); } +function getDefaultSemanticEntry(name) { + const color = MASK_SEMANTIC_COLORS.find(c => c.name === name); + return { + name: color.name, + rgb: { r: color.bgr.r, g: color.bgr.g, b: color.bgr.b }, + }; +} function getSemanticContext() { const revision = getMaskRuntimeRevision(); if (contextRevision === revision && cachedContext) { @@ -31,9 +38,11 @@ function getSemanticContext() { } const mask = getMaskSegmentRuntimeConfig().mask; const semanticRgb = buildSemanticRgb(mask.semanticColors); - const baseboardRgb = semanticRgb.find(entry => entry.name === BASEBOARD_SEMANTIC_NAME); - const cabinetRgb = semanticRgb.find(entry => entry.name === 'cabinet'); - const wallRgb = semanticRgb.find(entry => entry.name === 'wall'); + const baseboardRgb = semanticRgb.find(entry => entry.name === BASEBOARD_SEMANTIC_NAME) ?? getDefaultSemanticEntry(BASEBOARD_SEMANTIC_NAME); + const cabinetRgb = semanticRgb.find(entry => entry.name === 'cabinet') ?? + getDefaultSemanticEntry('cabinet'); + const wallRgb = semanticRgb.find(entry => entry.name === 'wall') ?? + getDefaultSemanticEntry('wall'); const maxDist = mask.baseboardMaxColorDist; cachedContext = { baseboardMaxColorDistSq: maxDist * maxDist, @@ -75,7 +84,7 @@ export function classifyBgrPixelToSemantic(b, g, r) { best = entry; } } - return best.name; + return best?.name ?? 'wall'; } export function getSemanticColorByName(name) { const colors = getMaskSegmentRuntimeConfig().mask.semanticColors; diff --git a/dist/utils/maskSemanticPalette.js.map b/dist/utils/maskSemanticPalette.js.map index 9cb89cc..7733fd6 100644 --- a/dist/utils/maskSemanticPalette.js.map +++ b/dist/utils/maskSemanticPalette.js.map @@ -1 +1 @@ -{"version":3,"file":"maskSemanticPalette.js","sourceRoot":"","sources":["../../src/utils/maskSemanticPalette.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maskSemanticPalette.js","sourceRoot":"","sources":["../../src/utils/maskSemanticPalette.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/utils/maskSemanticPalette.ts b/src/utils/maskSemanticPalette.ts index 22b8149..bb72b11 100644 --- a/src/utils/maskSemanticPalette.ts +++ b/src/utils/maskSemanticPalette.ts @@ -52,6 +52,14 @@ function buildSemanticRgb(colors: MaskSemanticColor[]): SemanticRgbEntry[] { })); } +function getDefaultSemanticEntry(name: string): SemanticRgbEntry { + const color = MASK_SEMANTIC_COLORS.find(c => c.name === name)!; + return { + name: color.name, + rgb: { r: color.bgr.r, g: color.bgr.g, b: color.bgr.b }, + }; +} + function getSemanticContext(): SemanticContext { const revision = getMaskRuntimeRevision(); if (contextRevision === revision && cachedContext) { @@ -60,11 +68,16 @@ function getSemanticContext(): SemanticContext { const mask = getMaskSegmentRuntimeConfig().mask; const semanticRgb = buildSemanticRgb(mask.semanticColors); - const baseboardRgb = semanticRgb.find( - entry => entry.name === BASEBOARD_SEMANTIC_NAME, - )!; - const cabinetRgb = semanticRgb.find(entry => entry.name === 'cabinet')!; - const wallRgb = semanticRgb.find(entry => entry.name === 'wall')!; + const baseboardRgb = + semanticRgb.find( + entry => entry.name === BASEBOARD_SEMANTIC_NAME, + ) ?? getDefaultSemanticEntry(BASEBOARD_SEMANTIC_NAME); + const cabinetRgb = + semanticRgb.find(entry => entry.name === 'cabinet') ?? + getDefaultSemanticEntry('cabinet'); + const wallRgb = + semanticRgb.find(entry => entry.name === 'wall') ?? + getDefaultSemanticEntry('wall'); const maxDist = mask.baseboardMaxColorDist; cachedContext = { @@ -122,7 +135,7 @@ export function classifyBgrPixelToSemantic( } } - return best.name; + return best?.name ?? 'wall'; } export function getSemanticColorByName(name: string): MaskSemanticColor | undefined {