私はかなりしばらくの間、タンゴのために開発されていないが、最近私はタンゴのJava APIの最新バージョンに更新され、私はTangoImageBuffer
オブジェクトが今format == 17
を持っていることに気づいた、である:タンゴの画像フォーマットYCRCB_420_SP
public static final int YCRCB_420_SP = 17;
私が覚えている限り、これまでのバージョンでは、の代わりにYV12
でした。
public static final int YV12 = 842094169;
私はBGRに変換するためにOpenCVのcvtColor
機能を適用するために使用:
cv::Mat imageBgr(720, 1080, CV_8UC3);
cv::Mat image(3 * 720/2, 1280, CV_8UC1);
cv::cvtColor(image, imageBgr, cv::COLOR_YUV2RGB_NV12);
は、OpenCVのを使用してYCRCB_420_SP
を読むことが方法は何ですか?私はCOLOR_YCrCb2BGR
と同様のモードを試しましたが、動作しません。
どうやら、COLOR_YUV2RGB_NV12
はまだ動作し、やや合理的な結果を生成します。
をしかし、色はオフになっているようにそれは感じていると、すべてが非常に黄色っぽい見えます。それとも、私は妄想していますか?
私の質問は、YCRCB_420_SP
の画像を読み取る正しい方法は何ですか? OpenCV cv::COLOR_YUV2RGB_NV12
を適用するのは正しいですか?
EDIT:
@fireantが示唆したように、私はNV21を使用してみましたが、これは明らかに動作しません:
NV12は、元の色にかなり近づいていました。コードは
cv::cvtColor(image, imageBgr, cv::COLOR_YUV2RGB_NV21);
私は同様の問題にこだわっている...私が働いている:
だけの推測では、このようになりますあなたの代わりにBGRのRGB、BGRとNV21後の画像を使用しているようですTango ** Unity ** SDKと、カメラデータを取得するためのコールバック(TangoUnityImageData)は、まだYV12フレームを提供していると言います。私はカポラレスのリリースです。しかし、これらのフレームは期待どおりに機能していません...あなたのショーのように変更されている可能性があり、TangoUnity SDKで誤ってラベル付けされています。 https://developers.google.com/tango/apis/unity/reference/class/tango/tango-enums#class_tango_1_1_tango_enums_1ae177f114ecf6fd14e2f6152005ecfe0eaf4f398ec3ced7faeea573a7546fc3036 – Jethro