2015-02-26 2 views
0

Я использую backgroundMOG2 для сохранения изображений с фоном, но программа показывает countrs, мне нужно сохранить изображения с backgorund.BackgroundSubtractorMOG2, могу ли я сохранить изображение из него. я получаю ошибку при сохранении изображений из BackgroundSubtractorMOG2

#include <opencv2/opencv.hpp> 
#include <iostream> 
#include <vector> 
#include <opencv2/video/background_segm.hpp> 


int main() 
{ 
    cv::Mat frame; 
    cv::Mat back; 
    cv::Mat fore; 

    //cv::Mat img; 
    cv::VideoCapture cap("C:\\Users\\Pavilion\\Documents\\Visual Studio 2013\\Projects\\dynamic\\sherlock outtakes.avi"); 

    cv::BackgroundSubtractorMOG2 bg; 
    bg.set("nmixtures", 3); 

    //bg.bShadowDetecction=false; 
    std::vector<std::vector<cv::Point>>countours; 

    //cv::imread("C:\\Users\\Pavilion\\Documents\\Visual Studio 2013\\Projects\\video\\video\\frames\\frame122.jpg"); 
    //cv::VideoCapture Cap; 
    //std::vector<std::vector<cv::point> >contours; 

    cv::namedWindow("frame"); 
    cv::namedWindow("background"); 

    for (;;) 
    { 
     cap >> frame; 
     bg.operator()(frame, fore); 
     bg.getBackgroundImage(back); 
     cv::erode(fore, fore, cv::Mat()); 
     cv::dilate(fore, fore, cv::Mat()); 
     cv::findContours(fore,countours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); 
     cv::drawContours(frame, countours, -1, cv::Scalar(0, 0, 255), 1); 
     cv::imshow("frame", back); 
     // cv::imwrite("background",back); 

     cv::imshow("background", frame); 
     if (cv::waitKey(30) >=0) break; 

} 
    return 0; 

} 

это код, который я получаю при сохранении изображения.

может кто-то помочь мне решить эту

+0

также отметить, что фоновое изображение * синтезировали * от модели, очень дорогостоящий процесс, и что, скорее всего, вы никогда не будете нуждаться в этом. – berak

ответ

1

Вам нужно указать расширение (JPG, PNG, ...).

Например:

cv::imwrite("background.jpg",back); 
+0

Я ценю ваш ответ, мне это очень помогает. теперь я хочу сохранить все изображения из видео с помощью контуров с помощью backgroundsubtractorMOG2(), вывод моей программы показывает все изображения в одном файле, которые я имею в виду для одного изображения, показывающего все движущиеся изображения с контурами, которые я хочу сохранить каждое изображение. – TJV

+0

@OpenMinded, не могли бы вы помочь нам открыть эту выделенную группу: http://area51.stackexchange.com/proposals/66531/computer-vision/72084 Просто голосуйте на вопросы с менее чем 10 голосами. Благодарю. – Royi

Смежные вопросы