示例#1
0
 private void btn_errcor_Click(object sender, EventArgs e)
 {
     if (this.comboBox1.Text == "")
     {
         MessageBox.Show("清选择纠错卡牌");
     }
     else
     {
         richTextBox1.Clear();
         Mat src = new Mat(Config.GetCacheImgPath(), ImreadModes.Color);
         richTextBox1.AppendText(CardObtain.errCor(src, this.comboBox1.Text));
     }
 }
示例#2
0
        private void checkRes(Mat src, bool auto)
        {
            richTextBox1.Clear();
            OpenCvSharp.Point leftUp;
            Mat rect = CardObtain.GetRect(src, out leftUp);

            if (rect == null)
            {
                richTextBox1.AppendText("未识别\r\n");
                return;
            }

            List <CardInfo> cards      = CardObtain.GetCard(rect);
            GroupCards      groupCards = GroupCards.Grouping(cards);



            richTextBox1.AppendText("识别卡牌:");
            this.group_0.Controls.Clear();
            foreach (CardInfo card in groupCards.allCards)
            {
                richTextBox1.AppendText(card.cn);
                AddImgToGroup(this.group_0, card.hs + card.cn);
            }
            richTextBox1.AppendText("\r\n");

            List <CardInfo> bestAnswer = groupCards.BestAnswer();

            richTextBox1.AppendText("分组A:");
            this.group_1.Controls.Clear();
            foreach (CardInfo card in bestAnswer)
            {
                if (card.group == 1)
                {
                    richTextBox1.AppendText(card.cn);
                    AddImgToGroup(this.group_1, card.hs + card.cn);
                }
            }
            richTextBox1.AppendText(";分组B:");
            this.group_2.Controls.Clear();
            foreach (CardInfo card in bestAnswer)
            {
                if (card.group == 2)
                {
                    richTextBox1.AppendText(card.cn);
                    AddImgToGroup(this.group_2, card.hs + card.cn);
                }
            }
            if (bestAnswer.Count > 0 && auto)
            {
                OpenCvSharp.Point[] points = CardObtain.GetGroupPoint(src);
                if (Math.Abs(points[0].X - points[1].X) < 10 && Math.Abs(points[0].Y - points[1].Y) > 150)
                {
                    foreach (CardInfo card in bestAnswer)
                    {
                        if (card.group > 0)
                        {
                            hotkey.DropObj(300, leftUp.X + card.point.X + 5, leftUp.Y + card.point.Y + 5, leftUp.X + card.point.X + 5, leftUp.Y + points[card.group - 1].Y);
                        }
                    }
                }
            }
        }