Я использую следующий метод open cv для преобразования UIImage в матрицу.
cv::Mat gtpl;// Stores BGRA matrix
UIImage *tplImg = [UIImage imageNamed:@"lion"];
cv::Mat tpl;
UIImageToMat(tplImg, tpl); //Converts Image to Matrix
cv::cvtColor(tpl, gtpl, CV_RGBA2BGRA); // Converts matrix to 4 channels and save into gtpl variable.
//While Adding it to camera's live feed
- (void)processImage:(cv::Mat &)img {
cv::Rect roi( cv::Point(100, 100), cv::Size(gtpl.size()));//Creating rect on which image will be mapped
cv::Mat destinationROI = img( roi );
cv::Mat channels[4];
split(gtpl, channels);
gtpl.copyTo( destinationROI ); //Copying gtpl matrix onto cameras matrix.
}
Изображение с белым фоном на камере.
Как видите, фон изображения выглядит белым, но он прозрачный.
Буду признателен за помощь.