Друзья!Есть два входных изображения.Одно фоновое изображение, другое изображение маски.Мне нужно получить цветную часть маски.
Что мне нужно получить: фон , маска , изображение результата
Но я получаю что-то совершенно другое: фон , маска , изображение результата
Мой код на C #:
//Read files
Mat img1 = CvInvoke.Imread(Environment.CurrentDirectory + "\\Test\\All1.jpg");
Mat img = CvInvoke.Imread(Environment.CurrentDirectory + "\\Test\\OriginalMask.jpg");
// Threshold and MedianBlur mask
CvInvoke.Threshold(img, img, 0, 255, Emgu.CV.CvEnum.ThresholdType.BinaryInv);
CvInvoke.MedianBlur(img, img, 13);
// without this conversion, an error appears: (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1)
CvInvoke.CvtColor(img, img, Emgu.CV.CvEnum.ColorConversion.Rgb2Gray);
CvInvoke.BitwiseNot(img1, img1, img);
//Save file
img1.Save(Environment.CurrentDirectory + "\\Test\\Result.jpg");
Первый вопрос: Как мне достичь результата, показанного на картинке?
Второй вопрос: Почему я получаю ошибку, если я делаюне конвертировать маску: (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1)
Третий вопрос: как сделать прозрачный фон вместо белого фона на конечном изображении?
Решение не даетдолжен быть в C #.Решение подходит для любого языка программирования, поскольку синтаксис OpenCV примерно одинаков.Заранее спасибо.