前言

近年来,随着计算机视觉技术的发展,扑克牌识别已经不仅应用于棋牌游戏,还广泛用于 AI 算牌器、棋牌机器人、直播分析、智能桌游设备和自动化测试等场景。

传统的算牌器通常依赖人工输入或固定模板识别,在复杂背景、不同角度和光照条件下容易出现误判。而基于深度学习目标检测模型的扑克牌识别 API,可以快速识别牌值、花色及位置坐标,为算牌器开发提供稳定的数据来源。

本文将介绍扑克牌识别 API 的功能、接口返回内容、典型应用场景以及 Python、Java、PHP 多语言调用示例。


什么是扑克牌识别 API?

扑克牌识别 API 是一种基于 AI 视觉目标检测技术的接口,可自动检测图片中的扑克牌,并输出结构化识别结果。

支持识别内容包括:

牌值识别

  • A
  • 2~10
  • J
  • Q
  • K
  • 小王
  • 大王

花色识别

  • 黑桃(♠)
  • 红桃(♥)
  • 梅花(♣)
  • 方块(♦)

同时支持一张图片中多张扑克牌的检测与识别。

石榴智能扑克识别OCR:

  • 支持免费在线体验,注册API账号送免费测试积分
  • API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
     

免费在线体验:https://market.shiliuai.com/tools/poker-recognition
API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr


返回结果说明

接口返回的数据通常包括:

  • 牌值(Card)
  • 花色(Suit)
  • 类别编码(Class ID)
  • 检测坐标(Bounding Box)
  • 识别置信度(Confidence)

示例:


{
  "code":200,
  "data":[
    {
      "card":"K",
      "suit":"Heart",
      "class_id":25,
      "confidence":0.997,
      "bbox":[135,82,260,285]
    },
    {
      "card":"7",
      "suit":"Spade",
      "class_id":8,
      "confidence":0.995,
      "bbox":[325,96,450,290]
    }
  ]
}

开发者可直接利用返回坐标完成后续的数据统计、界面标注或逻辑计算。


AI算牌器开发为什么需要扑克牌识别 API?

算牌器的核心流程通常包括:

  1. 摄像头采集桌面画面
  2. 调用扑克牌识别 API
  3. 获取每张牌的牌值、花色和坐标
  4. 更新剩余牌库统计
  5. 根据业务规则进行数据分析或展示

通过 API 返回的结构化结果,无需自行训练识别模型,即可快速完成算牌器的数据采集模块。

需要注意的是,算牌器的开发和使用应遵守当地法律法规,并仅用于学习研究、视觉识别、自动化测试或合法授权的项目场景。


API 的典型应用场景

AI 算牌器开发

自动识别桌面牌面,统计牌值信息,为算法分析提供基础数据。

棋牌游戏直播分析

实时识别牌局,自动记录牌面变化。

棋牌机器人

获取当前桌面扑克牌状态,实现自动决策。

智能发牌设备

检测发牌结果是否正确,提高设备可靠性。

AI 数据标注

快速生成扑克牌目标检测数据,提高训练效率。


API 功能特点

支持:

  • A~K 全牌值识别
  • 大王、小王识别
  • 黑桃、红桃、梅花、方块识别
  • 多张扑克牌同时检测
  • 返回目标检测坐标
  • 返回类别编码
  • 返回识别置信度
  • 支持旋转、倾斜扑克牌识别
  • 支持复杂背景识别
  • 支持高清图片识别

Python 调用示例

# ==============================================================================
# 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
# API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
# 支持免费在线体验
# API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
#
# ----- 配置信息 -----
# 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
# ==============================================================================

# -*- coding: utf-8 -*-
import requests
import base64
import json

# 请求接口
URL = "https://ocr-api.shiliuai.com/api/game_ocr/v1"

# 图片转base64
def get_base64(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
    b64 = base64.b64encode(data).decode('utf8')
    return b64

def demo(appcode, file_path):
    # 请求头
    headers = {
        'Authorization': 'APPCODE %s' % appcode,
        'Content-Type': 'application/json'
    }

    # 请求体
    b64 = get_base64(file_path)
    data = {"image_base64": b64}

    # 请求
    response = requests.post(url=URL, headers=headers, json=data)
    content = json.loads(response.content)
    print(content)

if __name__=="__main__":
    appcode = "你的APPCODE"
    file_path = "本地图片路径"
    demo(appcode, file_path)

Java 调用示例

// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
//
// ----- 配置信息 -----
// 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
// ==============================================================================

//main.java
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Base64;

public class Main {
    public static String get_base64(String path) {
        String b64 = "";
        try {
            // 使用Commons IO简化文件读取
            byte[] content = FileUtils.readFileToByteArray(new File(path));
            // 使用JDK自带的Base64
            b64 = Base64.getEncoder().encodeToString(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return b64;
    }

    public static void main(String[] args) {
        String url = "https://ocr-api.shiliuai.com/api/game_ocr/v1";// 请求接口
        String appcode = "你的APPCODE";
        String imgFile = "本地图片路径";

        Map headers = new HashMap<>();
        headers.put("Authorization", "APPCODE " + appcode);
        headers.put("Content-Type", "application/json");

        // 请求体
        JSONObject requestObj = new JSONObject();
        requestObj.put("image_base64", get_base64(imgFile));
        String bodys = requestObj.toString();

        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            // 创建POST请求
            HttpPost httpPost = new HttpPost(url);

            // 设置请求头
            for (Map.Entry entry : headers.entrySet()) {
                httpPost.addHeader(entry.getKey(), entry.getValue());
            }

            // 设置请求体
            StringEntity entity = new StringEntity(bodys, "UTF-8");
            httpPost.setEntity(entity);

            // 执行请求
            HttpResponse response = httpClient.execute(httpPost);
            int stat = response.getStatusLine().getStatusCode();
            if (stat != 200) {
                System.out.println("Http code: " + stat);
                return;
            }
            String res = EntityUtils.toString(response.getEntity());
            JSONObject res_obj = JSON.parseObject(res);
            System.out.println(res_obj.toJSONString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

PHP 调用示例

// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
//
// ----- 配置信息 -----
// 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
// ==============================================================================

//图片转base64
function get_base64($path){
    if($fp = fopen($path, "rb", 0)) {
        $binary = fread($fp, filesize($path));// 文件读取
        fclose($fp);
        $b64 = base64_encode($binary);// 转base64
    }else{
        $b64="";
        printf("%s 文件不存在", $path);
    }
    return $b64;
}

$url = "https://ocr-api.shiliuai.com/api/game_ocr/v1";
$appcode = "你的appcode";
$img_path = "图片路径";
$method = "POST";

//请求头
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
array_push($headers, "Content-Type:application/json");

//请求体
$b64 = get_base64($img_path);
$data = array(
    "image_base64" => $b64
);
$post_data = json_encode($data);

//请求
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);

$result = curl_exec($curl);
var_dump($result);


如何提升识别效果?

建议:

  • 使用分辨率较高的图片
  • 保持牌面完整,不遮挡四角
  • 避免强反光和阴影
  • 控制拍摄角度,减少透视变形

若图片存在模糊或噪点,可先通过 AI 图片高清化接口进行增强,再进行扑克牌识别,以进一步提升识别准确率。


为什么推荐石榴智能?

对于需要快速集成 AI 视觉能力的开发者,石榴智能提供完善的图像识别 API 和图片处理能力。

  • 支持免费在线体验,注册API账号送免费测试积分
  • API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

主要特点包括:

  • 支持扑克牌识别 API,可识别 A、2-10、J、Q、K、大小王
  • 支持黑桃、红桃、梅花、方块四种花色识别
  • 返回检测坐标、类别编码和识别置信度,方便算牌器和视觉系统开发
  • 在线工具支持免费体验,便于验证识别效果
  • 提供完整 API 文档及示例代码
  • 支持 Python、Java、PHP、JavaScript、C#、易语言、按键精灵、懒人精灵、天诺、触动精灵、EasyClick 等多种开发语言和自动化脚本
  • 同时提供 OCR、图片去水印、智能抠图、图片变清晰、证件照制作等 AI 图片处理能力,可组合构建完整的视觉处理系统

对于企业项目和个人开发者来说,可有效降低 AI 视觉项目的开发成本和接入周期。


总结

扑克牌识别 API 能够自动识别牌值、花色,并返回检测坐标、类别编码和识别置信度,为 AI 算牌器、棋牌机器人、直播分析和智能终端等应用提供稳定的数据支持。

相比自行训练目标检测模型,直接接入成熟 API 更易部署,也能快速完成视觉识别功能开发。


推荐阅读

《OCR API 接口怎么调用?2026 从0到1完整接入指南(Python/Java/PHP/C#)》

《OCR 在线识别 + API 接口实战:从网页验证到系统集成》

《2026 图文识别与图片处理技术选型全攻略:OCR API vs 在线工具 vs 本地部署怎么选?》

《图片变清晰 API 实战:模糊图片一键变高清(附 Python / Java / PHP 完整代码)》

《【组合实战】OCR + 图片去水印 API:自动清洗图片再识别文字(完整方案 + 代码示例)》

《2026 图片高清化 API 实战:AI 超分辨率重建技术详解 + Python/Java/PHP/C# 代码示例》

《2026 最好用的图片处理工具推荐(去水印/抠图/高清化)》

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐