1

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?!

jww
  • 97,681
  • 90
  • 411
  • 885
jok23
  • 286
  • 1
  • 5
  • 19

0 Answers0