如何使用OpenCV打印出轨道栏的当前值?

时间:2015-02-19 17:15:51

标签: c++ opencv trackbar

我正在创建一个简单的配置面板窗口来修改OpenCV程序的某些HSV值。这是具体的代码:

int HUE_MIN = 0;
int HUE_MAX = 256;
int SAT_MIN = 0;
int SAT_MAX = 256;
int VAL_MIN = 0;
int VAL_MAX = 256;

const string configPanelWindowName = "Configuration panel";

void createTrackbars()
{
namedWindow(configPanelWindowName, 0);

cv::createTrackbar( "HUE_MIN", configPanelWindowName, &HUE_MIN, HUE_MAX );
cv::createTrackbar( "HUE_MAX", configPanelWindowName, &HUE_MAX, HUE_MAX );
cv::createTrackbar( "SAT_MIN", configPanelWindowName, &SAT_MIN, SAT_MAX );
cv::createTrackbar( "SAT_MAX", configPanelWindowName, &SAT_MAX, SAT_MAX );
cv::createTrackbar( "VAL_MIN", configPanelWindowName, &VAL_MIN, VAL_MAX );
cv::createTrackbar( "VAL_MAX", configPanelWindowName, &VAL_MAX, VAL_MAX );
}

void createTrackbars();

我已经关注了一些视频演示,在大多数情况下,轨迹栏以整数显示其当前值,但在我的情况下,数字不会出现,我不知道为什么我可以实现它们。我尝试通过onChange参数更新跟踪栏标签,但它不起作用,因为label参数应该是常量。

我不想使用cv::putText()函数,因为我没有在配置面板窗口中使用图像,而我目前正在另一个窗口中使用cv::putText的变通方法来显示轨道栏的当前值。

最后我不知道这是否相关,但我所看到的演示的所有环境都与我的不同。我使用的是Mac OS X 10.10,而是使用Ubuntu和Windows,所以我认为这会导致这种行为。

所以我想知道为什么这个功能对我不起作用,如果有一个不同的解决方法可以使用cv::putText

0 个答案:

没有答案