использование Emgu Image в неуправляемом коде c ++ - PullRequest
0 голосов
/ 18 января 2012

Мне нужно написать оболочку для моего кода C ++, чтобы использовать его в приложении c #. В основном мне нужно предварительно обработать образ Emgu из C # на стороне c ++ и вернуть его обратно. Я пытаюсь сделать это таким образом в неуправляемой стороне C ++:

public ref class ImageProcessor
{
public:
    void process(Image<Bgr, Byte>^ InImage)
    {
            cv::Mat image(InImage->Width,
                          InImage->Height,
                          CV_8UC3,
                          InImage->Ptr.ToPointer());

            cv::imwrite("mask.png", mask); //this line throws exception 

    }
 };

Когда я вызываю функцию thiss из c #, исключение - throw: System.AccessViolationException не было обработано Сообщение = Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена.

Вопрос в том, как правильно передать Emgu :: CV :: Image ^ из управляемого кода в неуправляемый c ++?

...