You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:基于OpenCV实现游戏可变尺度鱼类图标定位的优化方案

游戏图像中鱼类图标定位问题求助

我刚接触计算机视觉领域,需要在游戏图像中定位鱼类图标并获取其坐标。该图标存在以下识别难点:

  • 随水中位置改变尺寸
  • 拉取时颜色变化
  • 游戏特效常干扰识别
    核心问题是图标尺度频繁变化,已尝试的方法效果不佳或不稳定:

已尝试的方法

1. 模板匹配

图标尺寸不同时效果差;尝试多尺度模板数组,不仅不稳定还大幅降低算法速度,相关代码如下:

std::vector<Mat> fishIcon;
const std::vector<double> SCALES = { 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4 };

// 创建多尺度模板
for (double scale : SCALES) {
    Mat resIcon;
    resize(sourceIcon, resIcon, Size(0, 0), scale, scale);

    fishIcon.push_back(resIcon);
}

// 在图像中搜索图标的方法
bool FindObject(Mat& templateForFind, Mat& screenshot, Point& maxLoc, Mat& result, bool debug, double confid) {
    matchTemplate(screenshot, templateForFind, result, TM_CCOEFF_NORMED);
    double minVal, maxVal;
    minMaxLoc(result, &minVal, &maxVal, NULL, &maxLoc);

    if (debug) {
        std::cout << maxVal << std::endl;
    }

    if (maxVal >= confid) {
        return true;
    }
    else {
        return false;
    }
}

// 遍历所有尺度直到找到匹配项
for (Mat ic : fishIcon) {
    if (FindObject(ic, screenshotGray, max_loc, result, true, 0.8)) {
        fishIconPosition = Point(max_loc.x, max_loc.y);
        found = true;
        break;
    }
}

2. ORB与直方图基础搜索方法

尝试OpenCV官网介绍的ORB与直方图基础搜索方法,效果同样不理想。

现寻求更简单高效的解决方案,恳请各位提供相关思路。

内容的提问来源于stack exchange,提问作者Maksim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:47:29