I have a class ImageProcessing. This class have two methods: on_trackbar and process.
I want to call on_trackbar method from process method. Code:
void ImageProcessingBasler::on_trackbar(int, void* )
{
alpha = (double)alpha_slider / alpha_slider_max;
beta = (1.0 - alpha);
addWeighted(src1, alpha, src2, beta, 0.0, dst);
imshow("Linear Blend", dst);
}
void ImageProcessingBasler::processImages(Mat srcImage, Mat premaskImage)
{
src1 = anomalyImg;
if (!src2.data) { printf("Error loading src2 \n"); return -1; }*/
alpha_slider = 0;
namedWindow("anomalyImg", 1);
char TrackbarName[50];
sprintf(TrackbarName, "Alpha x %d", alpha_slider_max);
createTrackbar(TrackbarName, "Linear Blend", &alpha_slider, alpha_slider_max, on_trackbar );
// Show some stuff
on_trackbar(alpha_slider, 0);
}
But when I call createTrackbar
function, parameter on_trackbar
is underlined with red color and the error says:
void ImageProcessing::on_trackbar(int, void *) argument of type "void(ImageProcessing::*)(int, void *)
is incompatible with parameter of type "cv::TrackbarCallback"
What am I doing wrong here?!