Skip to content

CSUFT-Running-Bug/billiard-assistant

Repository files navigation

腾讯桌球助手

此项目可以延长腾讯桌球小程序的辅助线,准确率可达90%。原理是通过minicap实时传输手机屏幕截图,然后通过opencv匹配模板图像和画线来实现延长辅助线。minicap具体详情可查看项目网址

注意

  • 支持的手机分辨率:2160x10801920x1080。其他分辨率暂时请自行适配(请查看适配)。
  • minicap传输实时屏幕速度太快,而我的操作图片代码的速度赶不上。所以使用了另一个线程来处理图片,一定几率导致线程崩溃。
  • 帧率只有5fps,延迟200ms

环境要求

用法

安装minicap

先进入minicap目录。

cd minicap

获取设备支持的ABI。

ABI=$(adb shell getprop ro.product.cpu.abi | tr -d '\r')

然后将对应的minicap导入设备。

adb push libs/$ABI/minicap /data/local/tmp/

还需要将对应的共享库导入设备。

SDK=$(adb shell getprop ro.build.version.sdk | tr -d '\r')
adb push jni/libs/android-$SDK/$ABI/minicap.so /data/local/tmp/

授予执行权限。

adb shell chmod 777 /data/local/tmp/minicap

测试一下,如果打印了OK说明没有问题。

adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 2160x1080@2160x1080/0 -t

运行

运行minicap。

adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 2160x1080@2160x1080/0

打开另一个终端映射本地端口。这里的端口要和python代码里面的端口一致。

adb forward tcp:1717 localabstract:minicap

运行python代码

cd ../
pip install -r requirements.txt
python final.py

适配

  • 运行test.py。(按步骤运行)
  • 用画图软件打开图片,然后取6个坐标。left_top_m蓝色框左上角,left_top是绿色框左上角,left_top_e是球桌边界左上角。
  • resolves.py文件中添加对象,名称格式为'_' + width + 'x' + height,例如'_1080x2160'
  • device.py中添加判断。
  • templates文件夹下添加模板图像,需为png格式,命名和上面一致。

About

通过图像识别加长腾讯桌球小程序的辅助线

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages