opencv 轨迹栏不显示

opencv trackbar not showing

包括

#include <opencv/highgui.h>
#include <iostream>

using namespace std;
using namespace cv;

Mat srimg, deimg;

int max_brightness = 100;
int slider_b = (max_brightness / 2);

void on_change_brightness(int, void*)
{
    int brightness = slider_b - (max_brightness / 2);
    deimg = srimg + Scalar::all(brightness);
    imshow("Girl", deimg);
}

int main()
{
    srimg = imread("lenna.PNG");

    imshow("girl", srimg);

    createTrackbar("Track", "Window", &slider_b, max_brightness,on_change_brightness);

    waitKey();

    return EXIT_SUCCESS;
}

注意:: 当我 运行 代码运行良好时没有错误,但轨迹栏没有显示,据我所知一切都应该没问题。

根据 OpenCV documentation,

int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0)

因此,您的 window 名字应该是 "Girl"

我认为行

createTrackbar("Track", "Window", &slider_b, max_brightness,on_change_brightness);

应该是

createTrackbar("Track", "Girl", &slider_b, max_brightness,on_change_brightness);

和行

imshow("girl", srimg);

应该是

imshow("Girl", srimg);

保持共同的 window 名称。

如果不行,试试

namedWindow("Girl", 1);

在 createTrackbar 函数之上。 资料来源:Example