跳到主要内容

🧩 Props:maskConfig

字段类型默认值描述
semanticColorsMaskSemanticColor[]内置调色板遮罩语义颜色(可被顶层 semanticColors 覆盖)
blackThresholdnumber30max(B,G,R) 低于此值的像素视为黑色背景
maxRegionColorsnumber6保留的最大语义区域数
quantStepnumber64踢脚线量化步长
baseboardMaxColorDistnumber42踢脚线颜色距离阈值
baseboardStripQuantKeysstring[]内置键值踢脚线索带量化键,格式 "b,g,r"
wallQuantKeysstring[]内置键值墙面量化键
cabinetQuantKeysstring[]内置键值橱柜量化键
secondarySemanticNamesstring[]garageDoor, roof, eave次要语义名称
secondaryMinPixelRationumber0.002次要语义的最小像素比例
junctionHRadiusPxnumber24踢脚线接缝水平半径
junctionVRadiusPxnumber2踢脚线接缝垂直半径
kickBridgeHalfWPxnumber6踢脚线水平间隙桥接半宽
baseboardJunctionRowMarginPxnumber1踢脚线接缝行边距
baseboardJunctionVReachPxnumber2踢脚线接缝垂直延伸
baseboardMinRunPxnumber2遮罩条带最小运行长度
splitWallsbooleanfalse将墙面遮罩按纹理边界拆分为 wall-1wall-2...
splitWallsMaxCountnumber8最大墙面子区域数
splitWallsMinAreaRationumber0.002碎片最小面积比例(相对于总分割像素)
splitWallsColorDistSqnumber1400连通分量色度均值距离平方阈值
splitWallsChromaBlurRadiusnumber5保留:色度平滑半径
splitWallsNeutralChromaMaxnumber14白/灰墙面低色度半径;与彩色墙面的强制边界
splitWallsEdgeBarrierThresholdnumber160逐通道 BGR Sobel 梯度边缘屏障阈值(0 = 禁用)。可见墙面接缝 ≈ 120–280,细微光照渐变 ≈ 20–80
splitWallsCloseMaskRadiusnumber3组件标注前墙面遮罩孔洞(窗户、门)的形态学闭运算半径。设为 0 禁用
manualSplitWallsbooleanfalsetrue 时禁用自动纹理墙面分割,改为手动套索分区
manualSplitWallsMaxCountnumber8套索定义的最大手动墙面子区域数
manualSplitWallsGapAbsorbDilatePxnumber5形态学膨胀半径(分割像素),用于合并绘制多边形周围的未分配墙面薄缝
magneticLassobooleanfalsetrue 时,套索模式使用 Sobel 梯度 + Dijkstra 最短路径进行边缘吸附
activeContourRefinebooleanfalse结束套索后,对每个多边形运行主动轮廓精炼,将顶点向外扩展到墙面遮罩边缘

启用 splitWalls 后,单个 wall 区域将被替换为多个 wall-N 子区域,每个子区域可独立上色和撤销。旧会话中 regionName: 'wall' 的记录无法映射到新的子区域名称,需重新上色。

手动墙面分割(套索模式)

manualSplitWalls 启用时,自动纹理墙面分割被禁用。用户必须使用 套索(Lasso) 功能在墙面上手动绘制多边形:

  • 调用 ref.startLasso() 进入套索模式,然后在墙面区域点击放置多边形顶点。
  • 启用 magneticLasso 进行边缘吸附 — 路径将沿图像强边缘走(Sobel 梯度 + Dijkstra 最短路径)。
  • 启用 activeContourRefine 在套索完成后自动将顶点向外扩展到墙面遮罩边界。
  • 调用 ref.endLasso() 将闭合套索多边形转换为可上色的 wall-N 子区域。
  • 自动分割时使用 splitWallsCloseMaskRadius 填充墙面遮罩孔洞(窗户、门)。
  • 自动分割时使用 splitWallsEdgeBarrierThreshold 阻止 BFS 跨越强边缘(窗框、门框)。