私はOpencv Matオブジェクトにsf::Image
& sf::Text
とコピーすることを試みています。私たちは、SFMLに、我々はsf::Image
に直接テキストを追加することはできませんが、我々はそのためRenderWindowのかRenderTextureを使用する必要があり、私の知る限りではイメージにレンダリングテキスチャーをコピーします。
sf::Image img;
cv::Size size(img.getSize().x, img.getSize().y);
cv::Mat mat(size,CV_8UC4, (void*)img.getPixelsPtr(), cv::Mat::AUTO_STEP);
cv::cvtColor(mat, mat, cv::COLOR_RGBA2BGRA);
によってcv::Mat
(OpenCVの)へsf::Image
を変換することができます。 > SF ::テクスチャ - - > SF ::スプライト - > SF :: RenderTexture
SF ::テキスト私は唯一の回避策は、注文
SF ::イメージの次のオブジェクトをロードすることであると思います - > SF :: SFにRenderTexture
最後にコピーRenderTexture ::画像その後、CVに変換::マット
私はそれがSFをコピーするために長い時間がかかるだろうと仮定::バックSFにRenderTexture ::画像。
この他の回避策はありますか? sf :: Image :: loadFromMemory();のようにします。
P.S:それはSFMLに来るときいくつかの参照here & here
あなたの答えをありがとう。 _ "あなたはフリースタイルを直接使用し、フォントデータをGPUに移動したくないかもしれません。" _ –
Freetypeはフォントのロードとレンダリングに使用されるライブラリです。 SFMLはfreetypeを内部的に使用し、レンダリングされた文字をsf :: TexturesとしてGPUにアップロードします。 "ソフトウェア"レンダラが必要なので、あなた自身でfreetypeを使用して "RAM"にレンダリングすることができます。あなたはそれをどうやって、この質問を超えています。 – Lukas