detectAllRectangles method
检测图片中所有矩形并返回四个顶点坐标
- Parameter imageData: 图片的字节数据
- Returns: 包含所有矩形顶点坐标的List
Implementation
@override
Future<List<Map<String, dynamic>>> detectAllRectangles(
Uint8List imageData,
) async {
try {
// 输入验证
if (imageData.isEmpty) {
debugPrint('所有矩形检测错误: 图像数据为空');
return <Map<String, dynamic>>[];
}
// 确保 OpenCV.js 已加载
await _ensureOpenCVLoaded();
// 从字节数据创建图像
final imageElement = await _createImageFromBytes(imageData);
// 调用 JavaScript 函数检测所有矩形
final result = _detectAllRectanglesJS(imageElement as JSAny);
if (result == null) {
debugPrint('所有矩形检测: 未检测到矩形');
return <Map<String, dynamic>>[];
}
// 转换 JavaScript 数组为 Dart List
return _convertJSArrayToList(result);
} catch (e, stackTrace) {
debugPrint('Web 所有矩形检测错误: $e');
debugPrint('堆栈跟踪: $stackTrace');
return <Map<String, dynamic>>[];
}
}