下面的代码用于将OpenCV Mat图像转换为SFML图像。如何将SFML图像转换回Mat图像?
如果纹理或精灵无法转换为OpenCV Mat,那么是否可以将sf::Image转换为OpenGL,然后再将其转换回cv::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 = ℑ
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);