- BGR画像をABGR/ARGBに変換したいです。BGR2ABGRやBGR2ARGBではなく、BGR2RGBAが変換されます。
- opencvでも他の方法でも可能ですか?
3
A
答えて
3
次のように必要な操作はcv::mixChannels
を用いて画像チャネルを交換することによって達成することができる。
cv::Mat bgr, bgra;
//bgr initialization code here...
//.
//.
//.
cv::cvtColor(bgr, bgra, cv::COLOR_BGR2BGRA);
cv::Mat abgr(bgra.size(), bgra.type());
int from_to[] = { 0,3, 1,1, 2,2, 3,0 };
cv::mixChannels(&bgra,1,&abgr,1,from_to,4);
from_to
アレイは、宛先画像のチャンネルにコピーされるソースからのチャネルを指定するマッピング関数です。ペアは、入力のチャンネル番号0
が2
への出力の数3
、1
から1
、2
をチャンネルにコピーされ、チャンネル番号3
出力の数0
をチャンネルにコピーされることを示します。
また、イメージチャネルを分割し、必要なチャネルを交換して再度マージすることもできます。それは以下のように行うことができます。
あなたは `[` mixChannels`](http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#続いBGR2BGRA`変換を使用することができますcv::cvtColor(bgr, bgra, cv::COLOR_BGR2BGRA);
std::vector<cv::Mat> channels_bgra;
cv::split(bgra, channels_bgra);
std::vector<cv::Mat> channels_abgr = { channels_bgra[3], channels_bgra[1], channels_bgra[2], channels_bgra[0] };
cv::merge(channels_abgr, abgr);
2
OpenCVのはARGBまたはABGRフォーマットをサポートしていないので、あなたはそれを表示したり、その上の機能の一部を使用することはできません...しかし、のsplitとmerge機能でそれらを作成することが可能ですOpenCV。私が何を意味しているかを説明するコードがあります。
cv::Mat src, final_image;
// fill src as you prefer
std::vector<cv::Mat> channels;
cv::split(src, channels); // this will put each channel in a mat in the vector
// swap or add channels in the vector
cv::Mat alpha(src.rows, src.cols, CV_8U, cv::Scalar(255));
channels.push_back(alpha);
std::reverse(channels.begin(), channels.end()); //needs <algorithm>
// merge the channels in one new image
cv::merge(channels, final_image);
これは、関数mixChannelsで(多分それだけ短くなります)速く行うことができますが、私はこの1つは少し混乱していることを言うだろう。
関連する問題
- 1. OpenNV RGB画像からOpenCV BGR IplImageへの変換?
- 2. ビットマップを画像に変換する方法<Bgr, Byte>
- 3. OpenCVでYUVをBGRまたはRGBに変換する
- 4. OpenCVの画像変換
- 5. CVD画像をColor OpenCV画像に変換する
- 6. javafx argbからグレースケール変換へ
- 7. OpenCVのシングルチャンネル画像への変換
- 8. openCVの色をグレースケール画像に変換するには?
- 9. GL_BLENDのAndroid GL ARGB画像
- 10. 画像をopencvの行列に変換する方法
- 11. 遷移UIButton画像をある画像から別の画像に変換
- 12. opencv画像から画面にピクセル値を出力する
- 13. OpenCV画像の変換とパースペクティブの変更
- 14. OpenCV、ピクセルのパッチを画像から画像にマッピングするときのノイズ
- 15. 画像をあるフォーマットから別のフォーマットに変換する
- 16. アイコンから画像への変換
- 17. HTMLから画像への変換
- 18. Java Androidスタジオ:画像をカメラからバイナリに変換する
- 19. バイナリをmsアクセスからImagelistの画像に変換する
- 20. 変換のYCrCbへと戻ってBGR
- 21. openCVを使用してカラー画像のピクセルのBGRコンポーネントを分離する方法
- 22. 3チャンネル(BGR)マトリックスを4チャンネル(ABGR)マトリックスに変換する
- 23. BGRバイト配列をイメージに変換する方法
- 24. イメージを漫画に変換し、アンドロイドでオイルペイント画像に変換する
- 25. bytearrayを画像や画像に変換する方法はbytearrayですか?
- 26. cで画像ファイルタイプを変換する
- 27. ビットマップを画像に変換する
- 28. PDFファイルを画像に変換する
- 29. MHTファイルを画像に変換する
- 30. JPanelを画像に変換する
をミックスチャンネル)を使用してチャンネルを並べ替えます。 – sgarizvi
もしチャンネルを並べ替えるとうまくいくでしょうか? – Sagar
正常に動作するはずです。それを試して、何が起こるかを見てください。それがうまくいかない場合は、いつでもチャンネルを分割して並べ替えることができます。 – sgarizvi