Я использую функцию setMouseCallback для извлечения информации о координатах пикселей при каждом событии мыши. Программа, созданная мной, отлично работает, если я использую окна openCV. Точность:C++ QT и OpenCV. setMouseCallBack в QLabel?
image cv :: Mat;
cv::namedWindow("Original", WINDOW_NORMAL);
cv::imshow("Original", image);
cv::setMouseCallback("Original", mouseWrapper, NULL);
где
void esempio::onMouse(int event, int x, int y, int flags, void *param)
{
//---------------------------------------------------------
// Code to read the mouse event in the identification of a point
//---------------------------------------------------------
if (event == CV_EVENT_LBUTTONDOWN)
{
std::cout << "1: " << x << "," << y << std::endl;
pp_m.x=x;
pp_m.y=y;
}
}
void mouseWrapper(int event, int x, int y, int flags, void* param)
{
esempio * mainWin = (esempio *)(param);
mainWin->onMouse(event,x,y,flags,0);
}
Теперь я хотел бы использовать тот же код в QLabel, созданный в моем интерфейсе. Я пытался использовать функцию setWindowTitle изменить имя QLabel таким образом:
ui->label_show->setWindowTitle("Test");
cv::setMouseCallback("Test", mouseWrapper, NULL);
, но этот подход, как представляется, не адекватен.
Как я могу указать функции setMouseCallback для работы с нужным QLabel?
Благодаря
Я читал о фильтрах событий, но хотел бы просто узнать, как адаптировать мою функцию к QLabel. Я перейду к событиям Qt! благодаря – Thomas