重排软著说明书多图功能展示
- 按功能步骤重新安排软著说明书图片,一个功能区域可放置多张不同截图。 - 新增项目库视频/DICOM就绪状态截图,补充分割工作区矩形标注与画笔标注截图。 - 补充AI智能分割交互工具、正向点结果、正负点结果、边界框提示和边界框结果说明。 - 更新功能验证与素材清单,记录新增截图和多图展示规则。 - 扩展核心素材录制脚本,覆盖新增项目库、手工标注和边界框AI分割截图。
This commit is contained in:
@@ -77,6 +77,30 @@ async function completePolygon(page) {
|
||||
await sleep(1000);
|
||||
}
|
||||
|
||||
async function drawRectangleMask(page) {
|
||||
await page.getByTitle('创建矩形 (R)').click();
|
||||
await sleep(300);
|
||||
const box = await canvasBox(page);
|
||||
await page.mouse.move(box.x + box.width * 0.32, box.y + box.height * 0.35);
|
||||
await page.mouse.down();
|
||||
await page.mouse.move(box.x + box.width * 0.52, box.y + box.height * 0.55, { steps: 8 });
|
||||
await page.mouse.up();
|
||||
await sleep(700);
|
||||
}
|
||||
|
||||
async function drawBrushStroke(page) {
|
||||
await page.getByTitle('画笔').click();
|
||||
await sleep(300);
|
||||
const box = await canvasBox(page);
|
||||
await page.mouse.move(box.x + box.width * 0.42, box.y + box.height * 0.45);
|
||||
await page.mouse.down();
|
||||
for (const [px, py] of [[0.43, 0.47], [0.45, 0.50], [0.48, 0.51], [0.50, 0.49]]) {
|
||||
await page.mouse.move(box.x + box.width * px, box.y + box.height * py, { steps: 4 });
|
||||
}
|
||||
await page.mouse.up();
|
||||
await sleep(800);
|
||||
}
|
||||
|
||||
async function captureCoreScreenshots() {
|
||||
const browser = await chromium.launch({ headless: true, args: ['--window-size=1920,1080'] });
|
||||
const context = await browser.newContext({ viewport, deviceScaleFactor: 1 });
|
||||
@@ -89,6 +113,9 @@ async function captureCoreScreenshots() {
|
||||
await sleep(800);
|
||||
await shot(page, '38-logout-button-hover.png');
|
||||
|
||||
await clickTitle(page, '项目库', 800);
|
||||
await shot(page, '39-project-library-refreshed.png');
|
||||
|
||||
await openWorkspace(page);
|
||||
await shot(page, '24-workspace-current-frame-timeline.png');
|
||||
|
||||
@@ -103,6 +130,10 @@ async function captureCoreScreenshots() {
|
||||
await shot(page, '25-create-polygon-vertices.png');
|
||||
await completePolygon(page);
|
||||
await shot(page, '26-create-polygon-completed.png');
|
||||
await drawRectangleMask(page);
|
||||
await shot(page, '40-workspace-rectangle-mask.png');
|
||||
await drawBrushStroke(page);
|
||||
await shot(page, '41-workspace-brush-mask.png');
|
||||
|
||||
await page.getByTitle('AI自动推理').click();
|
||||
await sleep(800);
|
||||
@@ -141,6 +172,24 @@ async function captureCoreScreenshots() {
|
||||
await sleep(1200);
|
||||
await shot(page, '31-ai-segmentation-result.png');
|
||||
await shot(page, '36-ai-segmentation-positive-negative-result.png');
|
||||
await page.getByRole('button', { name: /清空全体锚点|清空所有锚点|清空/ }).click().catch(() => {});
|
||||
await sleep(500);
|
||||
await page.getByRole('button', { name: '边界框选' }).click();
|
||||
await sleep(500);
|
||||
const boxPrompt = await canvasBox(page);
|
||||
await page.mouse.move(boxPrompt.x + boxPrompt.width * 0.38, boxPrompt.y + boxPrompt.height * 0.34);
|
||||
await page.mouse.down();
|
||||
await page.mouse.move(boxPrompt.x + boxPrompt.width * 0.68, boxPrompt.y + boxPrompt.height * 0.72, { steps: 8 });
|
||||
await page.mouse.up();
|
||||
await sleep(800);
|
||||
await shot(page, '43-ai-segmentation-box-prompt.png');
|
||||
await page.getByRole('button', { name: '执行高精度语义分割' }).click();
|
||||
await page.waitForFunction(() => {
|
||||
const text = document.body.innerText;
|
||||
return text.includes('候选') || text.includes('推送至工作区编辑');
|
||||
}, null, { timeout: 90000 }).catch(() => {});
|
||||
await sleep(1200);
|
||||
await shot(page, '44-ai-segmentation-box-result.png');
|
||||
|
||||
await page.getByTitle(/当前用户.*点击退出/).first().hover().catch(async () => {
|
||||
await page.mouse.move(32, 1020);
|
||||
@@ -187,7 +236,7 @@ async function captureVideos() {
|
||||
await openWorkspace(page);
|
||||
await drawPolygonDraft(page);
|
||||
await completePolygon(page);
|
||||
await page.getByTitle('AI自动推理').click();
|
||||
await page.getByTitle('AI自动推理').click();
|
||||
await sleep(900);
|
||||
await page.getByLabel('传播起始帧').fill('1').catch(() => {});
|
||||
await page.getByLabel('传播结束帧').fill('12').catch(() => {});
|
||||
|
||||
Reference in New Issue
Block a user