将特定的裁剪图像与炉石卡ID匹配
hearthstonecarddetector的Python项目详细描述
要使用(小心),只需执行以下操作:
>>> from hearthstonecarddetector import image_to_card_id >>> from PIL import Image >>> with Image.open("test_image_here.ext") as img: >>> # if image is not cropped, perform the crop now >>> img = img.crop(bbox=(x1, y1, x2, y2)) >>> card_id = image_to_card_id(img) >>> print(card_id)
就这么简单!
分贝
这个模块最有趣的部分是所有卡片的散列。 散列是从卡片图像的某一部分中提取的,很好的一部分 艺术作品。这是在“crop_explained.png”中解释的,您可以看到 “测试”文件夹中的示例以获取更多帮助。
每张卡都按imagehash库提供的四种方式进行散列。这些是 平均值:hash、dhash、phash和whash。PHASH是本程序中使用的默认算法 模块。
测试和示例
请看一下测试目录。你会发现一些图像 为了匹配而适当裁剪的。testdetector.py文件 还包含一个工作代码示例。
请检查文件“crop_explained.png”以获取有关 特定的种植区域。要了解更多信息,您可以找到 用于创建这些散列的裁剪图像的整个集合 在https://s3.amazonaws.com/draftwithme/hashed_images/+card_id.png联机。 例如,第一张卡链接在 “https://s3.amazonaws.com/draftwithme/hashed_images/AT_001.png”。
未来工作
理想情况下,这个库应该支持使用全卡图像。问题 是不是卡的下半部分太相似了,所以散列整个图像 结果犯了很多错误。专注于卡片艺术提供了很多 成功。
一个改进的方法是根据法力(以及随后的攻击/生命)来组织卡牌。 然后,分别解析每个区域,并将某些区域与先前散列和索引的区域进行比较。
许可证
麻省理工学院许可证(MIT)
版权所有(c)2016 Tristan Kernan
特此免费向获得本软件副本的任何人授予许可,并且 相关文档文件(“软件”),在不受限制的情况下处理软件,包括 限制使用、复制、修改、合并、发布、分发、再授权和/或出售 软件,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权公告及本许可公告须包括在所有副本或实质性文件内。 软件的一部分。
软件按“原样”提供,无任何明示或暗示的保证,包括但不包括 仅限于适销性、适合特定用途和不侵权的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责, 无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件引起的、由软件引起的或与软件有关的 或软件的使用或其他交易。