机场大巴 2024-01-30 13:47 采纳率: 75%
浏览 4
已结题

OpenCV实时显示滑动条当前数值

OpenCV C++创建滑动条后,如何显示滑动条的当前数值?
如下,我写了个Canny边缘检测的程序,依靠滑动条来调整低阈值和高阈值,请问怎样才能显示当前的阈值是多少呢?

Mat object = imread("D:\\object.jpg");
int high_thresh, low_thresh;

void call_thresh(int, void*)
{
    resize(object, object, Size(480, 720));

    Mat canny;
    Canny(object, canny, low_thresh, high_thresh);

    Mat contour;

    imshow("边缘", canny);

    waitKey();
}

void find_contour()
{
    namedWindow("边缘");
    createTrackbar("低阈值", "边缘", &low_thresh, 255, call_thresh, 0);
    createTrackbar("高阈值", "边缘", &high_thresh, 255, call_thresh, 0);
    call_thresh(0, 0);
}


img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-30 13:54
    关注

    引自免费微信小程序:皆我百晓生

    为了实现实时显示滑动条当前数值,你可以在call_thresh函数中通过putText函数将当前阈值显示在图像上。具体实现如下:

    #include <opencv2/opencv.hpp>
    using namespace cv;
    
    Mat object = imread("D:\\object.jpg");
    int high_thresh, low_thresh;
    
    void call_thresh(int, void*)
    {
        resize(object, object, Size(480, 720));
    
        Mat canny;
        Canny(object, canny, low_thresh, high_thresh);
    
        // 将当前阈值显示在图像上
        std::string low_thresh_str = "低阈值: " + std::to_string(low_thresh);
        std::string high_thresh_str = "高阈值: " + std::to_string(high_thresh);
        putText(canny, low_thresh_str, Point(20, 20), FONT_HERSHEY_SIMPLEX, 0.7, Scalar(255, 255, 255));
        putText(canny, high_thresh_str, Point(20, 50), FONT_HERSHEY_SIMPLEX, 0.7, Scalar(255, 255, 255));
    
        imshow("边缘", canny);
        waitKey(1);  // 加入适当的延时,以保持实时显示
    }
    
    void find_contour()
    {
        namedWindow("边缘");
        createTrackbar("低阈值", "边缘", &low_thresh, 255, call_thresh, 0);
        createTrackbar("高阈值", "边缘", &high_thresh, 255, call_thresh, 0);
        call_thresh(0, 0);
    }
    

    **注意:**上面代码中的putText函数用于将文本显示在图像上,其中的参数可以根据需要进行调整。此外,为了实现实时显示滑动条当前数值,需要将waitKey函数的参数调整为一个适当的延时时间。你可以根据实际情况进行调整,比如1毫秒(waitKey(1))。

    这样,你就可以在窗口显示的边缘图像上看到当前的低阈值和高阈值了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月7日
  • 已采纳回答 1月30日
  • 创建了问题 1月30日

悬赏问题

  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 手游上号器是如何获取到游戏在微信平台的appid
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值