Cloud Vision API生成的文本边界框是否支持在C#中自行调整
C# 调整Cloud Vision API生成的边界框实现说明
该需求完全可以在C#环境下实现,实现逻辑和Python端没有本质差异,具体可参考以下步骤:
- 第一步:通过Google Cloud Vision官方提供的C# SDK调用文档识别接口,从返回结果中提取每个文本区块原生的边界框顶点坐标,返回结果的
BoundingPoly属性中会自带四个顶点的X、Y数值,可直接读取使用 - 第二步:根据你的业务需求自行调整坐标值,比如给四边统一增加内边距、合并多个相邻文本区块的边界框、裁剪超出图片范围的坐标等,相关坐标计算逻辑和Python端的写法可以完全对齐
- 第三步:调整完成后在原图上绘制边界框,可根据你的运行环境选择对应的图像处理库:
- Windows环境下可直接使用官方提供的
System.Drawing.Common包,调用Graphics.DrawPolygon方法即可完成边界框绘制 - 跨平台场景下可使用ImageSharp等第三方图像处理库,对应绘图API逻辑类似,也可以快速实现绘制需求
- Windows环境下可直接使用官方提供的
以下是简单的代码示例供参考:
// 引用System.Drawing.Common包后的绘制示例 using (var sourceImg = new Bitmap("待识别的本地图片路径.png")) using (var g = Graphics.FromImage(sourceImg)) { // 定义红色、线宽2的画笔 var drawPen = new Pen(Color.Red, 2); // adjustedBoxPoints为你调整后的边界框四个顶点坐标,格式为(int X, int Y)的集合 Point[] drawPoints = adjustedBoxPoints.Select(p => new Point(p.X, p.Y)).ToArray(); // 绘制边界框 g.DrawPolygon(drawPen, drawPoints); // 保存绘制完成的图片 sourceImg.Save("输出带框图片的路径.png"); }
内容的提问来源于stack exchange,提问作者user17348877
相关产品推荐
相关产品推荐

