/// <summary> /// get all pixels data about the image and width and height too /// </summary> /// <param name="Path"> where the image is stored</param> /// <returns>return ImageDataModel</returns> public async Task ProcessImage() { await Task.Run(() => { using (Bitmap bmp = new Bitmap(_image)) { var width = bmp.Width - 1; var height = bmp.Height - 1; var pixels = new List <List <Color> >(); for (var j = 0; j < height; j++) { var linesOfPixels = new List <Color>(); for (var i = 0; i < width; i++) { Color clr = bmp.GetPixel(i, j); linesOfPixels.Add(clr); } pixels.Add(linesOfPixels); } _processData = new ImageDataModel() { Data = pixels, Height = height + 1, Width = width + 1 }; } }); }
public static void CheckResult(ImageDataModel PreModel, ImageDataModel NowModel) { ResultData = new List <string> { $"{NowModel.ID}" }; stateCount += check(PreModel.KeyPointList, NowModel.KeyPointList); stateCount += check2(PreModel.KeyPointList, NowModel.KeyPointList); stateCount += check3(NowModel.KeyPointList); stateCount += check4(PreModel.KeyPointList, NowModel.KeyPointList); stateCount += check5(NowModel.KeyPointList); SubStatusCount += SubCheck(NowModel.KeyPointList); SubStatusCount += SubCheck2(PreModel.KeyPointList, NowModel.KeyPointList); SubStatusCount += SubCheck3(NowModel.KeyPointList); ResultData.Add("StatusCount=" + stateCount); ResultData.Add("SubStatusCount=" + SubStatusCount); if (SubStatusCount >= 100) { ResultData.Add("IsTired=Y"); ResetStatus(); } else { ResultData.Add("IsTired=N"); } if (stateCount >= 100) { Console.WriteLine("醒醒!!"); } ResultData.Add(NowModel.Date.ToString()); Task t = MQTTPublishResult(ResultData); }
public async Task <IHttpActionResult> GetRunwayChecklistDetails(ImageDataModel model) { foreach (var item in model.imagepara) { var data = await Task.Run(() => Entities.SP_InsertRunwayImageDetails(model.date, model.Time, Convert.ToInt32(item.id), item.filename)); } return(null); }
/// <summary> /// ID為檔案編號,file為檔案完整路徑(包含檔案名稱) /// </summary> public static ImageDataModel GetImageData(string ID, string file, bool IsNow = false) { string json = File.ReadAllText(file, new System.Text.UTF8Encoding()); var Object = System.Text.Json.JsonSerializer.Deserialize <OpenPoseModel>(json); if (Object.people.Count() == 0) { Console.WriteLine($"ID:{ID}:無效的json檔"); return(new ImageDataModel() { ID = ID, Date = DateTime.Now }); } List <KeyPointModel> List = new List <KeyPointModel>(); for (var i = 0; i < 75; i = i + 3) { List.Add(new KeyPointModel { x = Object.people[0].pose_keypoints_2d[i], y = Object.people[0].pose_keypoints_2d[i + 1], Confidence = Object.people[0].pose_keypoints_2d[i + 2] }); } foreach (var item in List) { if (item.Confidence > 0) { //Console.WriteLine($"{(List.IndexOf(item)).ToString("D2")}:x={item.x.ToString("F3")},y={item.y.ToString("F3")},置信度={item.Confidence.ToString("P")}"); } } ImageDataModel model = new ImageDataModel { ID = ID, Date = DateTime.Now, KeyPointList = List }; if (IsNow) { Console.WriteLine($"ID:{ID}"); List <string> msg = new List <string> { $"{model.ID}", $"zeroX={List[0].x}", $"zeroY={List[0].y}", $"oneX={List[1].x}", $"oneY={List[1].y}", $"twoX={List[2].x}", $"twoY={List[2].y}", $"threeX={List[3].x}", $"threeY={List[3].y}", $"fourX={List[4].x}", $"fourY={List[4].y}", $"fiveX={List[5].x}", $"fiveY={List[5].y}", $"sixX={List[6].x}", $"sixY={List[6].y}", $"sevenX={List[7].x}", $"sevenY={List[7].y}", $"eightX={List[8].x}", $"eightY={List[8].y}", $"fifteenX={List[15].x}", $"fifteenY={List[15].y}", $"sixteenX={List[16].x}", $"sixteenY={List[16].y}" , $"seventeenX={List[17].x}", $"seventeenY={List[17].y}", $"eighteenX={List[18].x}", $"eighteenY={List[18].y}", model.Date.ToString() }; Task t = MQTTPublishData(msg); } return(model); }
public void ProcessRequest(HttpContext context) { if(!string.IsNullOrEmpty(context.Request.QueryString["ImageId"])){ try { string ImageId = context.Request.QueryString["ImageId"].ToString(); ImageDataModel idm = new ImageDataModel(); byte[] ImageData = idm.getImageData(ImageId); context.Response.ContentType = "image/JPEG"; context.Response.OutputStream.Write(ImageData, 0, ImageData.Length); }
public async Task <ImageDataModel> Post() { string result = await Request.Content.ReadAsStringAsync(); ImageDataModel idm = new ImageDataModel(); dynamic jobj = JsonConvert.DeserializeObject(result); string imgCode = jobj.code; int hid = jobj.hid; idm.response = idm.RecognizeImage(imgCode); //idm = idm.CheckWiki(idm.response); idm.ImageStatistics(idm.response, hid); return(idm); }
public static void SendImage(string filename, ImageDataModel model) { filename = filename.Replace("keypoints.json", "rendered.png"); client.DefaultRequestHeaders.Clear(); //client.BaseAddress = new Uri(@""); client.DefaultRequestHeaders.Add("CK", "DKC395PCYXM9EPZ4XS"); List <string> value = new List <string> { model.ID, model.Date.ToString() }; string json = JsonConvert.SerializeObject(new { id = "Car_Image", value = value }); // 將轉為 string 的 json 依編碼並指定 content type 存為 httpcontent HttpContent meta = new StringContent(json, Encoding.UTF8, "application/json"); byte[] image = File.ReadAllBytes(filename); var fileStream = new StreamContent(new MemoryStream(image)); fileStream.Headers.Add("Content-Type", "image/jpeg"); var content = new MultipartFormDataContent(); content.Add(meta, "meta"); content.Add(fileStream, "img", "test.png"); client.PostAsync(@"https://iot.cht.com.tw/iot/v1/device/24986291524/snapshot", content); }
public string GetImg(ImageDataModel img) { return(String.Format("~/wwwroot/frames/{0}/{1}_{2}.png", img.Id, img.Id, img.Second)); }
private void AddOrUpdate(ImageDataModel entity) { _context.Set <ImageDataModel>().AddOrUpdate(entity); }
public void Add(ImageDataModel entity) { AddOrUpdate(entity); }