将特定的裁剪图像与炉石卡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

特此免费向获得本软件副本的任何人授予许可,并且 相关文档文件(“软件”),在不受限制的情况下处理软件,包括 限制使用、复制、修改、合并、发布、分发、再授权和/或出售 软件,并允许向其提供软件的人员这样做,但须满足以下条件:

上述版权公告及本许可公告须包括在所有副本或实质性文件内。 软件的一部分。

软件按“原样”提供,无任何明示或暗示的保证,包括但不包括 仅限于适销性、适合特定用途和不侵权的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责, 无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件引起的、由软件引起的或与软件有关的 或软件的使用或其他交易。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在wix中为TARGETDIR和SourceDir提供路径?   java在custom starter中访问spring应用程序名称   没有构建带有ActionBarSherlock的java Android项目   java按钮边框不显示   JavaSpring:从表单数据获取文件输入流   javascript通知侦听器服务   java在Junit测试时遇到异常   java从文件中读取特定值   JavaFX:在很短的时间内隐藏窗格   如何在Docker中使用用户定义的引用类来容器化Java应用程序?   java如何更改项目的编译SDKversion?   是否有任何java/spring方法可以使用HttpServletRequest存储当前登录用户的会话信息?   Java中的双大于号(>>)?   Java阵列2x2及其工作原理   java Spring引导ddl自动生成器   java如何利用大量数据传输优化服务器客户端应用程序?   java在使用Windows的FLAG_全屏时ICS和Jelly Bean之间的不同行为   java如何获取当前在回收器视图的线性布局中不可见的视图