ошибка C2248: «Gdiplus :: Bitmap :: Bitmap»: невозможно получить доступ к закрытому члену, объявленному в классе «Gdiplus :: Bitmap» - PullRequest
0 голосов
/ 21 декабря 2009

Я получаю эту ошибку, и я не знаю почему или понимаю причину:

    vector<double> fourier_descriptor(Gdiplus::Bitmap myBitmap)
{


    vector<double> res;
    Contour c;
    vector<Pixel> frame;// = c.GetContour(p);

frame = c.GetContour(myBitmap);


    return res;

}

ошибка в этой строке frame = c.GetContour (myBitmap);

Ответы [ 3 ]

2 голосов
/ 21 декабря 2009

Я не могу найти ссылку на метод GetContour, но похоже, что вы пытаетесь передать Bitmap по значению, которое (если я правильно помню мой C ++) вызовет конструктор копирования - а Bitmap не ' не может быть открытым конструктором копирования.

Если у вас есть Contour, перепишите эту функцию, взяв вместо нее Bitmap* или Bitmap& (т.е. передайте указатель или ссылку), избегая тем самым конструктора копирования.

1 голос
/ 21 декабря 2009

Gdiplus::Bitmap в не копируемом виде. И вы пытаетесь скопировать его, когда пытаетесь передать его по значению.

1 голос
/ 21 декабря 2009

Попробуйте передать его по ссылке:

vector<double> fourier_descriptor(Gdiplus::Bitmap& myBitmap)

Не передавая его по значению, вы делаете его копию, а растровое изображение этого не позволяет.

...