本文整理汇总了C#中CardCollection.SortByRank方法的典型用法代码示例。如果您正苦于以下问题:C# CardCollection.SortByRank方法的具体用法?C# CardCollection.SortByRank怎么用?C# CardCollection.SortByRank使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CardCollection
的用法示例。
在下文中一共展示了CardCollection.SortByRank方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Recognize
/// <summary>
/// Detects and recognizes cards from source image
/// </summary>
/// <param name="source">Source image to be scanned</param>
/// <returns>Recognized Cards</returns>
public CardCollection Recognize(Bitmap source, string filePath, int id,
int minSize, Rectangle suitRect, Rectangle rankRect
)
{
CardCollection collection = new CardCollection(); //Collection that will hold cards
Bitmap temp = source.Clone() as Bitmap; //Clone image to keep original image
FiltersSequence seq = new FiltersSequence();
seq.Add(Grayscale.CommonAlgorithms.BT709); //First add grayScaling filter
seq.Add(new OtsuThreshold()); //Then add binarization(thresholding) filter
temp = seq.Apply(source); // Apply filters on source image
//if (!string.IsNullOrEmpty(fileName))
//{
// temp.Save(fileName, ImageFormat.Bmp);
//}
//Extract blobs from image whose size width and height larger than 150
BlobCounter extractor = new BlobCounter();
extractor.FilterBlobs = true;
extractor.MinWidth = extractor.MinHeight = minSize;//TODO card size
//extractor.MaxWidth = extractor.MaxHeight = 70;//TODO card size
extractor.ProcessImage(temp);
//Will be used transform(extract) cards on source image
//QuadrilateralTransformation quadTransformer = new QuadrilateralTransformation();
foreach (Blob blob in extractor.GetObjectsInformation())
{
var cardImg = source.Clone(blob.Rectangle, PixelFormat.DontCare);
Card card = new Card(cardImg); //Create Card Object
Bitmap suitBmp = card.GetPart(suitRect);
char color = ScanColor(suitBmp); //Scan color
seq.Clear();
seq.Add(Grayscale.CommonAlgorithms.BT709);
seq.Add(new OtsuThreshold());
suitBmp = seq.Apply(suitBmp);
card.Suit = ScanSuit(suitBmp, color); //Scan suit of face card
Bitmap rankBmp = card.GetPart(rankRect);
seq.Clear();
seq.Add(Grayscale.CommonAlgorithms.BT709);
seq.Add(new OtsuThreshold());
rankBmp = seq.Apply(rankBmp);
//var ext = new BlobsFiltering(0, 0, 40, 40);
//ext.ApplyInPlace(rankBmp);
card.Rank = ScanRank(rankBmp); //Scan Rank of non-face card
//if (card.Rank == Rank.NOT_RECOGNIZED)
//{
// if (!string.IsNullOrEmpty(filePath))
// {
// while (File.Exists(filePath + id + ".bmp"))
// id++;
// top.Save(filePath + id + ".bmp", ImageFormat.Bmp);
// }
//}
if(card.Rank != Rank.NOT_RECOGNIZED && card.Suit != Suit.NOT_RECOGNIZED)
collection.Add(card); //Add card to collection
}
collection.SortByRank();
return collection;
}