#include<iostream>
#include<opencv2/opencv.hpp>
#include<stdlib.h>
using namespace cv;
using namespace std;
// 定义全局变量
cv::Mat img_Original;
cv::Mat img_Ranged;
cv::Mat img_Median;
// 定义回调函数
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);
}
void on_low_height_thresh_trackbar(int, void*)
void on_high_height_thresh_trackbar(int, void*)
在这两个函数中int,void*这两个形参都没有出现,那么设置这两个形参是为什么呢?