7

JPEGとマスクを持っています。3つのJPEGチャネルでPNGを作成したいのですが、アルファチャネルをマスクにする必要があります。OpenCVでこれをどのように達成できますか?

よろしく

4

2 に答える 2

8
std::vector<cv::Mat> channels;
cv::split(jpgImage, channels);
channels.push_back(mask);
cv::Mat bgraImage;
cv::merge(channels, bgrAImage);

分割およびマージ機能のドキュメント

于 2012-10-10T14:36:05.057 に答える
6

あなたの答えをありがとう、私は2番目の解決策を見つけました:

cv::Mat transparent( height, width, CV_8UC4);
cv::Mat srcImg[] = {JPEG_img, alpha_Mask};
int from_to[] = { 0,0, 1,1, 2,2, 3,3 };
cv::mixChannels( srcImg, 2, &transparent, 1, from_to, 4 );

これは完璧に機能しますが、どちらのソリューションが優れているかはわかりません。

于 2012-10-10T15:06:33.263 に答える