首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV on_low_height_thresh_trackbar()参数澄清

OpenCV on_low_height_thresh_trackbar()参数澄清
EN

Stack Overflow用户
提问于 2019-12-11 14:52:54
回答 1查看 46关注 0票数 0

给定以下程序代码:

代码语言:javascript
复制
void on_low_height_thresh_trackbar(int, void*);
void on_high_height_thresh_trackbar(int, void*);
int low_height = 50, high_height = 85;

int main()
{
    img_Original = cv::imread("ROI1.jpg", 0);
    cv::medianBlur(img_Original, img_Median, 5);

    cv::namedWindow("original image");
    cv::namedWindow("selected image");

    cv::createTrackbar("Low height", "selected image", &low_height, 255, on_low_height_thresh_trackbar);
    cv::createTrackbar("High height", "selected image", &high_height, 255, on_high_height_thresh_trackbar);

    cv::imshow("original image", img_Original);
    on_low_height_thresh_trackbar(low_height, 0);
    on_high_height_thresh_trackbar(high_height, 0);

    cv::waitKey(0);
    return 0;
}

void on_low_height_thresh_trackbar(int, void*)
{
    low_height = cv::min(high_height - 1, low_height);
    cv::setTrackbarPos("Low height", "selected image", low_height);
    cv::inRange(img_Median, low_height, high_height, img_Ranged);
    cv::imshow("selected image", img_Ranged);
}
void on_high_height_thresh_trackbar(int, void*)
{
    high_height = cv::max(high_height, low_height + 1);
    cv::setTrackbarPos("High height", "selected image", high_height);
    cv::inRange(img_Median, low_height, high_height, img_Ranged);
    cv::imshow("selected image", img_Ranged);
}

为什么在这个回调函数中需要这两个形式参数intvoid*

代码语言:javascript
复制
void on_low_height_thresh_trackbar(int, void*)

我觉得它们没有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-11 15:31:21

因为这些都是回调,所以当trackbar位置发生变化时,OpenCV会调用它们,而不应该自己调用它们。

int参数是新的trackbar位置,void*是指向任意“用户数据”的指针。

如果将指针作为userdata参数传递给createTrackbar,则该指针在被调用时将被传递回回调。

在C++中,将指向对象的指针作为“用户数据”传递是非常常见的。

例如,您可以编写一个封装trackbar并将this作为“用户数据”传递的this类。

大多数回调接口提供了一种让您自己的数据以这种方式进行“往返”的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59288441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档