我正在关注本教程: https://www.smartspate.com/how-to-write-a-bot-in-python-for-online-games/
但是我是第一部分。他似乎对图像进行阈值处理并获得图片中的白色字母,但是我的阈值处理却千真万确,而且我似乎在没有大量背景知识的情况下也无法获得简单的白色字母。
img = cv2.imread('bot_color.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
x, img = cv2.threshold(img, 150,255, cv2.THRESH_BINARY)
cv2.imshow('img', img)
cv2.waitKey(0)
我的阈值为252(正好是他的结果):
我的阈值为127的结果:
The pic I snipped from the site (original)
我用片段摘了他的照片。但是即使有其他图片,我也不明白为什么我无法出现简单的白色字母(例如,另一款游戏)
答案 0 :(得分:1)
如前所述,如果您无法从网站上下载“原始照片”,则可能没有。但是,这不应该仅仅改变阈值而改变您检测字母的方式。在将范围缩小到小写字母之前,请尝试将值调整到非常宽的范围。 首先尝试这样的事情:
<?php
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join;
/**
* Class CityRepository
* @package AppBundle\Repository
*/
class CityRepository extends EntityRepository
{
/**
* @return array
*/
public function getAllCitiesAssoc(): array
{
return $this->_em->createQueryBuilder()
->select('c')
->from('AppBundle:City', 'c', 'c.name') // Third parameter is index-by
->getQuery()
->getResult();
}
}
然后提高75值或降低255值以缩小阈值。
答案 1 :(得分:0)
当我查看该站点时,原始图像似乎已受版权保护,您无法下载原始图像。如果您在线制作了图片的屏幕截图,则可能会丢失很多信息,因此结果会有所不同。用油漆打开图像并放大文本,您将看到问题。尝试对自己制作的图像进行相同的处理。干杯!
百万像素计数是图像中像素的总数,并且与图像宽度和高度中的像素数有关。 通过调整图像大小,可以减少照片的大像素数,因此PC无法再存储所有细节(根本没有足够的像素可以存储)。从而从图像中删除细节。
编辑:
我在线搜索了同一游戏的屏幕截图,阈值正常。