public bool UpdateT_JudgeParamer(T_JudgeParamer t_JudgeParamer) { return(mapper.Update("UpdateT_JudgeParamer", t_JudgeParamer) >= 0); }
public int InsertT_JudgeParamer(T_JudgeParamer t_JudgeParamer) { return(Convert.ToInt32(mapper.Insert("InsertT_JudgeParamer", t_JudgeParamer))); }
public bool UpdateT_JudgeParamer(T_JudgeParamer t_JudgeParamer) { return(JDAO.UpdateT_JudgeParamer(t_JudgeParamer)); }
/// <summary> /// 解析数码管中的数字 /// </summary> /// <param name="Src">原始图片</param> /// <param name="TJList">分析管所在的位置参数</param> /// <param name="TH">图像二值华阀值</param> /// <param name="BrushW">LED笔画的宽度</param> /// <returns></returns> public static string AnalsyAreaDigitalTube(Bitmap Src, IEnumerable <Models.Judger.T_JudgeParamer> TJList, byte TH, int BrushW, out int[] vals) { vals = new int[TJList.Count()]; try { string str = string.Empty; for (int i = 0; i < TJList.Count(); i++) { T_JudgeParamer j = TJList.ElementAt(i); Bitmap bm = Cut(Src, new Point(j.StartX, j.StartY), j.EndX - j.StartX, j.EndY - j.StartY); bm = Threshoding(bm, TH); int area0 = 0, area1 = 0, area2 = 0, area3 = 0, area4 = 0, area5 = 0, area6 = 0; int width = bm.Width; int height = bm.Height; BitmapData data = bm.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); unsafe { byte *p = (byte *)data.Scan0; int offset = data.Stride - width * 4; int MiddX = width / 2, MiddY = height / 2; for (int y = 0; y < height; y++) { bool IsBreaked = false; for (int x = 0; x < width; x++) { if (p[0] == 255) { ///分布在垂直中线附近 if (Math.Abs(x - MiddX) < BrushW / 2) { if (Math.Abs(y - MiddY) <= BrushW / 2) { area3++; } else if (y > MiddY && x < MiddX) { area6++; } else if (y < MiddY && x > MiddX) { area0++; } } else if (x > MiddX) //分布在右边 { int YDiff = Math.Abs(y - MiddY); if (YDiff >= BrushW && YDiff <= BrushW * 1.5) { if (y > MiddY) { area5++; } else { area2++; } } } else//分布在左边 { int YDiff = Math.Abs(y - MiddY); if (YDiff >= BrushW && YDiff <= BrushW * 1.5) { if (y > MiddY) { area4++; } else { area1++; } } } } p += 4; } if (IsBreaked) { break; } p += offset; } bm.UnlockBits(data); } bm.Dispose(); int MinCount = 5; if (area0 > MinCount && area1 > MinCount && area2 > MinCount && area3 <= MinCount && area4 > MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 0; } else if (area0 <= MinCount && area1 <= MinCount && area2 > MinCount && area3 <= MinCount && area4 <= MinCount && area5 > MinCount && area6 <= MinCount) { vals[i] = 1; } else if (area0 > MinCount && area1 <= MinCount && area2 > MinCount && area3 > MinCount && area4 > MinCount && area5 <= MinCount && area6 > MinCount) { vals[i] = 2; } else if (area0 > MinCount && area1 <= MinCount && area2 > MinCount && area3 > MinCount && area4 <= MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 3; } else if (area0 <= MinCount && area1 > MinCount && area2 > MinCount && area3 > MinCount && area4 <= MinCount && area5 > MinCount && area6 <= MinCount) { vals[i] = 4; } else if (area0 > MinCount && area1 > MinCount && area2 <= MinCount && area3 > MinCount && area4 <= MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 5; } else if (area0 > MinCount && area1 > MinCount && area2 <= MinCount && area3 > MinCount && area4 > MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 6; } else if (area0 > MinCount && area1 <= MinCount && area2 > MinCount && area3 <= MinCount && area4 < MinCount && area5 > MinCount && area6 <= MinCount) { vals[i] = 7; } else if (area0 > MinCount && area1 > MinCount && area2 > MinCount && area3 > MinCount && area4 > MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 8; } else if (area0 > MinCount && area1 > MinCount && area2 > MinCount && area3 > MinCount && area4 <= MinCount && area5 > MinCount && area6 > MinCount) { vals[i] = 9; } str += vals[i]; } return(str); } catch (Exception exception) { Tool.AppLogError(exception); return("FFF"); } }
public int InsertT_JudgeParamer(T_JudgeParamer t_JudgeParamer) { return(JDAO.InsertT_JudgeParamer(t_JudgeParamer)); }