# Test Images This directory contains **225 reference images** for testing card recognition algorithms without requiring actual hardware. ## Directory Structure | Category | Count | Description | |----------|-------|-------------| | `reference_alpha/` | 47 | Alpha edition reference cards (old frame) | | `varying_quality/` | 38 | Different lighting, blur, exposure, angles | | `single_cards/` | 19 | Individual card photos | | `real_photos/` | 18 | Phone camera photos from Visions project | | `foreign/` | 16 | Non-English cards (Japanese, German, French, etc.) | | `worn/` | 15 | Heavily played, damaged, worn cards | | `foil/` | 14 | Foil cards with holographic glare/reflections | | `low_light/` | 14 | Poor lighting, glare, shadows, amateur photos | | `tokens/` | 13 | Tokens and planeswalker emblems | | `hands/` | 11 | Cards held in hand (partial visibility) | | `ocr_test/` | 10 | Images optimized for OCR testing | | `reference/` | 9 | High-quality reference scans | | `multiple_cards/` | 6 | Multiple cards in frame | | `augmented/` | 4 | Augmented training examples | | `training_examples/` | 3 | ML training set samples | | `angled/` | 2 | Perspective distortion | ## Image Sources Images from open-source MIT-licensed projects: - [hj3yoo/mtg_card_detector](https://github.com/hj3yoo/mtg_card_detector) - [tmikonen/magic_card_detector](https://github.com/tmikonen/magic_card_detector) - [fortierq/mtgscan](https://github.com/fortierq/mtgscan) - [LauriHursti/visions](https://github.com/LauriHursti/visions) - [KLuml/CardScanner](https://github.com/KLuml/CardScanner) - [dills122/MTG-Card-Analyzer](https://github.com/dills122/MTG-Card-Analyzer) - [ryanlin/Turtle](https://github.com/ryanlin/Turtle) Additional images from: - Reddit r/magicTCG (user-submitted photos) - Flickr (Creative Commons) - Card Kingdom / Face to Face Games grading guides - Scryfall (foreign language card scans) ## Usage ```csharp [Theory] [InlineData("varying_quality/test1.jpg")] [InlineData("angled/tilted_card_1.jpg")] [InlineData("hands/hand_of_card_1.png")] [InlineData("foil/rainbow_foil_secret_lair.jpg")] [InlineData("worn/hp_shuffle_crease.webp")] [InlineData("foreign/japanese_aang.jpg")] public async Task RecognizeCard_VaryingConditions(string imagePath) { using var stream = File.OpenRead(Path.Combine("TestImages", imagePath)); var result = await _recognitionService.RecognizeCardAsync(stream); Assert.True(result.Success); Assert.NotNull(result.Card); Assert.True(result.Confidence >= 0.7f); } ``` ## Category Details ### foil/ Foil cards showing holographic effects that challenge recognition: - Rainbow foils with color-shifting (`rainbow_foil_secret_lair.jpg`) - Surge foils with holo stickers (`surge_foils_holo.jpeg`) - Old-style foils (`old_foil_yawgmoth.jpg`) - Textured/dragonscale foils (`dragonscale_foil.jpg`) - Foil curling examples showing warping ### worn/ Heavily played and damaged cards: - Edge whitening (`edge_white.png`, `very_good_*.jpg`) - Scratches and scuffs (`scratch.png`, `hp_scratches.png`) - Creases and bends (`hp_shuffle_crease.webp`, `bent_creased.jpg`) - Binder damage (`hp_binder_bite_*.webp`) - Water damage (`hp_water_warping.png`) - Corner damage (`hp_compromised_corner.webp`) ### low_light/ Poor lighting and amateur photography conditions: - Glare from toploaders/sleeves (`glare_toploader.png`) - Direct light causing hotspots (`glare_straight_down.jpg`) - Depth of field blur (`dof_blur_amateur.jpg`) - Amateur condition photos with shadows - Flickr collection shots with mixed lighting ### foreign/ Non-English cards (8 languages): - Japanese (日本語) - German (Deutsch) - French (Français) - Italian (Italiano) - Spanish (Español) - Russian (Русский) - Simplified Chinese (简体中文) - Korean (한국어) ### tokens/ Tokens and planeswalker emblems: - Official WotC tokens - Custom/altered tokens - Planeswalker emblems (Elspeth, Gideon, Narset) - Token collections and gameplay shots ### varying_quality/ Images with various real-world challenges: - Different camera exposures - BGS graded cases (`counterspell_bgs.jpg`) - Cards in plastic sleeves (`card_in_plastic_case.jpg`) - Various lighting conditions - 28 numbered test images (`test1.jpg` - `test27.jpg`) ### reference_alpha/ 47 Limited Edition Alpha cards for old-frame recognition: - Power Nine (Black Lotus, Ancestral Recall, Moxen, etc.) - Dual lands (Underground Sea, Volcanic Island, etc.) - Classic staples (Lightning Bolt, Counterspell, Sol Ring) ### hands/ Cards held in hand - partial visibility, stacked: - Various deck archetypes (Tron, Green, Red) - New and old frame cards - Different lighting conditions ### real_photos/ Phone camera photos from Visions project: - Real-world scanning conditions - Various resolutions and crops - Includes processed result images ### ocr_test/ From CardScanner project, graded by difficulty: - `card0-4.jpg`: Easier recognition - `card10-13.jpg`: Harder recognition (noted ~less accuracy) ## TODO: Additional Categories Needed - [ ] **double_faced/** - Transform/MDFC cards (both sides) - [ ] **art_cards/** - Art series cards without text boxes - [ ] **promos/** - Extended art, borderless, showcase frames - [ ] **very_low_light/** - Near-dark conditions - [ ] **motion_blur/** - Cards in motion during scanning ## License Card artwork is property of Wizards of the Coast. Images used for testing/research purposes only.