finished up grid detection.
This commit is contained in:
parent
41d174195e
commit
1246884be9
11 changed files with 1037 additions and 19 deletions
|
|
@ -24,10 +24,24 @@ export interface OcrResponse {
|
|||
lines: OcrLine[];
|
||||
}
|
||||
|
||||
export interface DetectGridResult {
|
||||
detected: boolean;
|
||||
region?: Region;
|
||||
cols?: number;
|
||||
rows?: number;
|
||||
cellWidth?: number;
|
||||
cellHeight?: number;
|
||||
}
|
||||
|
||||
interface DaemonRequest {
|
||||
cmd: string;
|
||||
region?: Region;
|
||||
path?: string;
|
||||
cols?: number;
|
||||
rows?: number;
|
||||
threshold?: number;
|
||||
minCellSize?: number;
|
||||
maxCellSize?: number;
|
||||
}
|
||||
|
||||
interface DaemonResponse {
|
||||
|
|
@ -36,6 +50,13 @@ interface DaemonResponse {
|
|||
text?: string;
|
||||
lines?: OcrLine[];
|
||||
image?: string;
|
||||
cells?: boolean[][];
|
||||
detected?: boolean;
|
||||
region?: Region;
|
||||
cols?: number;
|
||||
rows?: number;
|
||||
cellWidth?: number;
|
||||
cellHeight?: number;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
|
|
@ -85,6 +106,28 @@ export class OcrDaemon {
|
|||
return Buffer.from(resp.image!, 'base64');
|
||||
}
|
||||
|
||||
async gridScan(region: Region, cols: number, rows: number, threshold?: number): Promise<boolean[][]> {
|
||||
const req: DaemonRequest = { cmd: 'grid', region, cols, rows };
|
||||
if (threshold) req.threshold = threshold;
|
||||
const resp = await this.sendWithRetry(req, REQUEST_TIMEOUT);
|
||||
return resp.cells ?? [];
|
||||
}
|
||||
|
||||
async detectGrid(region: Region, minCellSize?: number, maxCellSize?: number): Promise<DetectGridResult> {
|
||||
const req: DaemonRequest = { cmd: 'detect-grid', region };
|
||||
if (minCellSize) req.minCellSize = minCellSize;
|
||||
if (maxCellSize) req.maxCellSize = maxCellSize;
|
||||
const resp = await this.sendWithRetry(req, REQUEST_TIMEOUT);
|
||||
return {
|
||||
detected: resp.detected ?? false,
|
||||
region: resp.region,
|
||||
cols: resp.cols,
|
||||
rows: resp.rows,
|
||||
cellWidth: resp.cellWidth,
|
||||
cellHeight: resp.cellHeight,
|
||||
};
|
||||
}
|
||||
|
||||
async saveScreenshot(path: string, region?: Region): Promise<void> {
|
||||
const req: DaemonRequest = { cmd: 'screenshot', path };
|
||||
if (region) req.region = region;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue