bug修复 修复修复修复

好的,这里是更新后的代码,将所有 inRange 函数的第一个变量替换为 ZoomOutimage

cpp 复制代码
// 绿色分岔路
if (divergerColor == "green" && nextColor == "null")
{
    cv::Mat frameGreen, frameRed;
    frame2.copyTo(frameGreen); // 复制原始图像用于绿色二值化处理
    frame2.copyTo(frameRed);   // 复制原始图像用于红色二值化处理

    // 二值化绿色
    inRange(ZoomOutimage, colorgroup.greenMin, colorgroup.greenMax, frameGreen); // 二值化绿色
    int numberGreen = 0;
    for (int i = 0; i < frameGreen.rows; i++)
    {
        for (int j = 0; j < frameGreen.cols; j++)
        {
            if (frameGreen.at<uchar>(i, j) == 255)
            {
                numberGreen++;
            }
        }
    }

    // 二值化红色
    inRange(ZoomOutimage, colorgroup.redMin, colorgroup.redMax, frameRed); // 二值化红色
    int numberRed = 0;
    for (int i = 0; i < frameRed.rows; i++)
    {
        for (int j = 0; j < frameRed.cols; j++)
        {
            if (frameRed.at<uchar>(i, j) == 255)
            {
                numberRed++;
            }
        }
    }

    // 出现绿色条带
    if (numberGreen >= 500)
    {
        mythread.mode = divergeleft;
        cout << "recognize green divergeleft" << endl;
        divergerColor = "null";
        frame2 = frameGreen;
        return;
    }

    // 出现红色条带
    else if (numberRed >= 500)
    {
        mythread.mode = divergeleft;
        cout << "recognize red divergeleft" << endl;
        divergerColor = "null";
        frame2 = frameRed;
        return;
    }
}
// 红色分岔路
else if (divergerColor == "red" && nextColor == "null")
{
    cv::Mat frameGreen, frameRed;
    frame2.copyTo(frameGreen); // 复制原始图像用于绿色二值化处理
    frame2.copyTo(frameRed);   // 复制原始图像用于红色二值化处理

    // 二值化绿色
    inRange(ZoomOutimage, colorgroup.greenMin, colorgroup.greenMax, frameGreen); // 二值化绿色
    int numberGreen = 0;
    for (int i = 0; i < frameGreen.rows; i++)
    {
        for (int j = 0; j < frameGreen.cols; j++)
        {
            if (frameGreen.at<uchar>(i, j) == 255)
            {
                numberGreen++;
            }
        }
    }

    // 二值化红色
    inRange(ZoomOutimage, colorgroup.redMin, colorgroup.redMax, frameRed); // 二值化红色
    int numberRed = 0;
    for (int i = 0; i < frameRed.rows; i++)
    {
        for (int j = 0; j < frameRed.cols; j++)
        {
            if (frameRed.at<uchar>(i, j) == 255)
            {
                numberRed++;
            }
        }
    }

    // 出现绿色条带
    if (numberGreen >= 500)
    {
        mythread.mode = divergeright;
        cout << "recognize green divergeright" << endl;
        divergerColor = "null";
        frame2 = frameGreen;
        return;
    }

    // 出现红色条带
    else if (numberRed >= 500)
    {
        mythread.mode = divergeright;
        cout << "recognize red divergeright" << endl;
        divergerColor = "null";
        frame2 = frameRed;
        return;
    }
}

// 棕色住户识别
else if (residenceColor == "brown" && divergerColor == "null")
{
    // 复制原始图像用于二值化处理
    cv::Mat frameBrown, frameViolet;
    frame2.copyTo(frameBrown);
    frame2.copyTo(frameViolet);

    inRange(ZoomOutimage, colorgroup.brownMin, colorgroup.brownMax, frameBrown); // 二值化棕色
    int numberBrown = 0;
    for (int i = 0; i < frameBrown.rows; i++)
    {
        for (int j = 0; j < frameBrown.cols; j++)
        {
            if (frameBrown.at<uchar>(i, j) == 255)
            {
                numberBrown++;
            }
        }
    }

    inRange(ZoomOutimage, colorgroup.violetMin, colorgroup.violetMax, frameViolet); // 二值化紫色
    int numberViolet = 0;
    for (int i = 0; i < frameViolet.rows; i++)
    {
        for (int j = 0; j < frameViolet.cols; j++)
        {
            if (frameViolet.at<uchar>(i, j) == 255)
            {
                numberViolet++;
            }
        }
    }

    // 出现红色或棕色条带
    if (numberBrown >= 500)
    {
        mythread.mode = residenceright;
        cout << "recognize brown" << endl;
        residenceColor = "null";
        frame2 = frameBrown;
        return;
    }
    else if (numberViolet >= 500)
    {
        mythread.mode = residenceright;
        cout << "recognize Violet" << endl;
        residenceColor = "null";
        frame2 = frameViolet;
        return;
    }
}
// 紫色住户识别
else if (residenceColor == "violet" && divergerColor == "null")
{
    // 复制原始图像用于二值化处理
    cv::Mat frameBrown, frameViolet;
    frame2.copyTo(frameBrown);
    frame2.copyTo(frameViolet);

    inRange(ZoomOutimage, colorgroup.brownMin, colorgroup.brownMax, frameBrown); // 二值化棕色
    int numberBrown = 0;
    for (int i = 0; i < frameBrown.rows; i++)
    {
        for (int j = 0; j < frameBrown.cols; j++)
        {
            if (frameBrown.at<uchar>(i, j) == 255)
            {
                numberBrown++;
            }
        }
    }

    inRange(ZoomOutimage, colorgroup.violetMin, colorgroup.violetMax, frameViolet); // 二值化紫色
    int numberViolet = 0;
    for (int i = 0; i < frameViolet.rows; i++)
    {
        for (int j = 0; j < frameViolet.cols; j++)
        {
            if (frameViolet.at<uchar>(i, j) == 255)
            {
                numberViolet++;
            }
        }
    }
    // 出现红色或棕色条带
    if (numberBrown >= 500)
    {
        mythread.mode = residenceleft;
        cout << "recognize brown" << endl;
        residenceColor = "null";
        frame2 = frameBrown;
        return;
    }
    else if (numberViolet >= 500)
    {
        mythread.mode = residenceleft;
        cout << "recognize Violet" << endl;
        residenceColor = "null";
        frame2 = frameViolet;
        return;
    }
}

在上述代码中,所有 inRange 函数的第一个参数都已经替换为 ZoomOutimage。这样确保了所有二值化处理都是在 ZoomOutimage 上进行的。

相关推荐
灰暗世界%16 小时前
飞牛bug修复
bug
凌云拓界3 天前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构
qingmiaozhuan4 天前
软件测试Bug复现高清录屏标准流程:新手入门与规范指南(2026实战版)
bug·电脑录屏·电脑录屏软件·测试录屏规范·音画同步录制
凌云拓界5 天前
NodeVerdict:Node.js 原生诊断数据可视化工具
信息可视化·架构·typescript·开源·node.js·github·bug
蓝天下的守望者9 天前
验证环境中使用队列的pop_front()思维惯性引发的bug
bug
一只小菜鸡..9 天前
南京大学 操作系统 (JYY) 学习笔记:并发 Bug 的地狱——数据竞争、死锁与原子性违反
笔记·学习·bug
名字还没想好☜10 天前
React 受控输入框光标跳到末尾:格式化输入时的 selection 丢失 bug 与修复
前端·javascript·react.js·bug·react·next.js
陈 洪 伟11 天前
大模型推理引擎vLLM(30):由一个GLM5 bug,整理MLP中的SwiGLU、算子融合、量化相关问题
bug·mlp·vllm
endeavor1212 天前
BUG(记录)
bug
不断学习加努力14 天前
使用rviz2进行可视化时,cpu资源占用过高的bug
bug