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
包括
#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