您的位置:首页 > 游戏 > 游戏 > 南宁行业平台开发公司_微信首页制作代码_青岛seo培训_找资源的关键词有哪些

南宁行业平台开发公司_微信首页制作代码_青岛seo培训_找资源的关键词有哪些

2025/6/8 14:50:51 来源:https://blog.csdn.net/qq_49595983/article/details/145903892  浏览:    关键词:南宁行业平台开发公司_微信首页制作代码_青岛seo培训_找资源的关键词有哪些
南宁行业平台开发公司_微信首页制作代码_青岛seo培训_找资源的关键词有哪些
using Newtonsoft.Json.Linq;
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{public static void JToken2InputArray(JToken shapeData, out Mat matOfPoints, out Point[] points){int[][] floatArray = shapeData.ToObject<int[][]>();int rows = floatArray.Length;int cols = floatArray[0].Length;points = new Point[floatArray.Length];for (int i = 0; i < floatArray.Length; i++){if (floatArray[i].Length >= 2){points[i] = new Point(floatArray[i][0], floatArray[i][1]);}else{Console.WriteLine($"第 {i + 1} 个数组元素不足2个,无法转换为Point");}}Mat mat = new Mat(rows, cols, MatType.CV_8UC1);for (int i = 0; i < rows; i++){for (int j = 0; j < cols; j++){mat.Set(i, j, floatArray[i][j]);}}InputArray Points = InputArray.Create(mat);matOfPoints = new Mat(points.Length, 1, MatType.CV_32SC2, points);}static void Main(){string imgPath = "bus.jpg";string labelmePath = "bus.json";Mat img = Cv2.ImRead(imgPath);int width = img.Width;int height = img.Height;Mat mask = new Mat(height, width, MatType.CV_8UC3, new Scalar(0, 0, 0));string jsonText = File.ReadAllText(labelmePath);JObject labelme = JObject.Parse(jsonText);Scalar bboxColor = new Scalar(255, 129, 0);int bboxThickness = 5;foreach (var shape in labelme["shapes"]){string shapeType = (string)shape["shape_type"];if (shapeType == "rectangle"){string label = (string)shape["label"];var points = shape["points"].ToObject<double[][]>();Point pt1 = new Point(points[0][0], points[0][1]);Point pt2 = new Point(points[1][0], points[1][1]);Cv2.Rectangle(img, pt1, pt2, bboxColor, bboxThickness);Cv2.PutText(img, label, new Point(pt1.X, pt1.Y - 10), HersheyFonts.HersheySimplex, 1, bboxColor, 2);}}var kptColorMap = new Dictionary<string, Scalar>{{ "angle_30", new Scalar(255, 0, 0) },{ "angle_60", new Scalar(0, 255, 0) },{ "angle_90", new Scalar(0, 0, 255) }};foreach (var shape in labelme["shapes"]){string shapeType = (string)shape["shape_type"];if (shapeType == "point"){string label = (string)shape["label"];var point = shape["points"].ToObject<double[]>();Point pt = new Point(point[0], point[1]);Scalar color = kptColorMap[label];Cv2.Circle(img, pt, 30, color, -1);Cv2.PutText(img, label, new Point(pt.X + 30, pt.Y + 30), HersheyFonts.HersheySimplex, 0.8, color, 2);}}Scalar polyColor = new Scalar(151, 57, 224);foreach (var shape in labelme["shapes"]){string shapeType = (string)shape["shape_type"];if (shapeType == "polygon"){string label = (string)shape["label"];JToken pointinput = shape["points"];int[][] floatArray = shape["points"].ToObject<int[][]>();JToken2InputArray(pointinput, out Mat matOfPoints, out Point[] points);Cv2.Polylines(img, matOfPoints, true, polyColor, 3);Cv2.FillPoly(mask, matOfPoints, polyColor);Point center = new Point(points.Average(p => p.X), points.Average(p => p.Y));Cv2.PutText(img, label, new Point(center.X - 100, center.Y), HersheyFonts.HersheySimplex, 1, polyColor, 4);}}Cv2.AddWeighted(img, 0.7, mask, 0.3, 0, img);Cv2.ImWrite("visualize.jpg", img);Cv2.ImShow("Image", img);Cv2.WaitKey(0);Cv2.DestroyAllWindows();}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com