如何识别扑克牌中黑桃、红桃、草花、红片那位大哥能给一个类

解决方案 »

  1.   

    最简单的办法,就是把你先做一张这样的图片 ,然后与你要进行比较的图片计算机相似度.算法比较复杂.GOOGLE可以找到类似代码.
      

  2.   

    最简单的办法,就是把你先做一张这样的图片 ,然后与你要进行比较的图片计算相似度.算法比较复杂.GOOGLE可以找到类似代码. 
     
      

  3.   

    黑桃、红桃、草花、红片 用枚举喽
    public enum PokerColor
    {
       //黑桃
       Spade=0,
       //红心
       Heart=1,
       //草花
       Club=2,
       //方块
       Diamond=3
    }
      

  4.   


    LZ正解,
    然后你的牌也一样用枚举。
    例如public enum PokerValue
    {
       one,two,three,four....
    }
      

  5.   

    不需要识别图片! 判断特定坐标的颜色就可以了! 用api GetPixel 函数 
      

  6.   

    我想的一种方法,先分别定义扑克黑红花片实体类分别用1234做标记,用来返回整数值来识别:
    public class puke()

       public int whatPuke(int t)
       {
         int i=t;
         if(i==1)
             //  黑
         if(i==2)
             // 红  
         if(i==3)
             // 花  
         if(i==4)
             // 片
         return i;          
       }}
      

  7.   

    特征比较明显,识别起来问题不大,SIFT方法就可以,网上有很多源代码
      

  8.   

    黑桃、红桃、草花、红片 用枚举喽 C# codepublicenum PokerColor {//黑桃 Spade=0,//红心 Heart=1,//草花 Club=2,//方块 Diamond=3 }  
     
      

  9.   


    using System;
    using System.Collections.Generic;
    using System.Text;namespace 扑克牌
    {
        public class Card
        {
            public readonly Suit suit;
            public readonly Rank rank;
            public Card(Suit newSuit, Rank newRank)
            {
                suit = newSuit;
                rank = newRank;
            }
            public Card()
            {
     
            }
            public override string ToString()
            {
                return "The " + rank + " of " + suit + "s";
            }
        }
    }
      

  10.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace 扑克牌
    {
        public class Deck
        {
            private Card[] cards;
        
            public Deck()
            {
                cards = new Card[52];
                for (int suitVal = 0; suitVal < 4; suitVal++)
                {
                    for (int rankVal = 1; rankVal < 14; rankVal++)
                    {
                        cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)rankVal);
                    }
                }
            }        public Card GetCard(int cardNum)
            {
                if (cardNum >= 0 && cardNum <= 51)
                    return cards[cardNum];
                else
                    throw (new System.ArgumentOutOfRangeException("cardNum", cardNum, "Value must be between 0 and 51"));
            }        public void Shuffle()
            {
                Card[] newDeck = new Card[52];
                bool[] assigned = new bool[52];
                Random sourceGen = new Random();
                for (int i = 0; i < 52; i++)
                {
                    int destCard = 0;
                    bool foundCard = false;
                    while (foundCard == false)
                    {
                        destCard = sourceGen.Next(52);
                        if (assigned[destCard] == false)
                            foundCard = true;                }
                    assigned[destCard] = true;
                    newDeck[destCard] = cards[i];
                }
                newDeck.CopyTo(cards, 0);
            }
        }
    }
      

  11.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace 扑克牌
    {
        public enum Rank
        {
            Ace = 1,
            Deuce,
            Three,
            Four,
            Five,
            Six,
            Seven,
            Eight,
            Nine,
            Ten,
            Jack,
            Queen,
            King,
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;namespace 扑克牌
    {
        public enum Suit
        {
            Club,
            Diamond,
            Heart,
            Spade,
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    using 扑克牌;namespace Client
    {
        class Program
        {
            static void Main(string[] args)
            {
                Deck MyDeck = new Deck();
                MyDeck.Shuffle();
                for (int i = 0; i < 52; i++)
                {
                    Card tempCard = MyDeck.GetCard(i);
                    Console.Write(tempCard.ToString());
                    if (i != 51)
                        Console.Write(",");
                    else
                        Console.WriteLine();
                }
                Console.ReadKey();
            }
        }
    }