Member 12761317 Ответов: 0

Как преобразовать изображение SFML в OpenCV mat на C++?


Приведенный ниже код используется для преобразования изображения OpenCV Mat в изображение SFML. Как преобразовать изображение SFML обратно в изображение Mat?

cv::Mat frameBGR, frameBGRA;
sf::Image image;
cv::cvtColor(frameBGR, frameRGBA, cv::COLOR_BGR2RGBA);
image.create(frameRGBA.cols, frameRGBA.rows, frameRGBA.ptr());

Если текстура или Спрайт не могут быть преобразованы в OpenCV Mat,то можно ли преобразовать sf:: Image в OpenGL и преобразовать его обратно в cv:: Mat
sf::Texture texture;
sf::Event event;
sf::Sprite sprite;
texture.loadFromImage(image);
sprite.setTexture(texture);


Обновление Я сослался на этот пост, но все равно не смог его преобразовать.

void* buffer = & image; 
        cv::Mat image_mat = cv::Mat(cvSize(500,500),CV_8UC4,buffer,cv::Mat::AUTO_STEP); 	
        cvtColor(image_mat, converted,CV_RGBA2BGR);

Он падает на нижнюю строку кода (когда я показываю изображение )

imshow("img", converted);



c++ - Как создать изображение в opencv из буфера, содержащего изображение в формате RGBA - Stack Overflow

Что я уже пробовал:

Я мог только конвертировать OpenCV Mat в SFML.

Arthur V. Ratz

Наверное, нельзя преобразовать СФМЛ в формате OpenCV мат или так.

0 Ответов