将某些功能应用于视频文件时opencv c ++代码错误

时间:2014-02-03 18:57:02

标签: c++ opencv qt-creator

尝试使用qtcreator和以前的代码运行OpenCV C ++代码时出现此错误 为视频文件添加一些功能

opencv error :assertion failed <fixed type<> ::<<Mat*>obj>->type<>==m type> in create file c:\opencv\sources\mogules\core\src\matrix.cpp

我尝试添加文件dWidthdHeight,但它无效。

int main(){
    Mat frame;
    Mat image;
    VideoCapture cap("file source");
    namedWindow("window",1);
    while(1){
        cap>>frame;
        GpyrTempIIR g;
        g.processOnFrame(frame,image); //this is the process i do on frame 
        imshow("window",image);
        waitKey(33);
    }
}
  void GpyrTempIIR::processOnFrame(const Mat& src, Mat& out) {
    src.convertTo(src,CV_32F); //Convert to Float
    resize(srcFloat,blurred,blurredsize,0,0,CV_INTER_AREA);
    /* Method in openCv to resize a video
     * INTER_AREA is a fast method that gets the average of several pixels, which
     is good for shrinking an image but not so good for enlarging an image. */
    if(first){
        first=false;
        blurred.copyTo(LowPassHigh);    // Using Storing Method
        blurred.copyTo(LowPassLow);
        src.copyTo(out);
    } else {
        //apply Temporal filter substraction of two IIR LowPass Filters
        LowPassHigh = LowPassHigh * (1-fHigh) + fHigh * blurred;
        LowPassLow = LowPassLow * (1-fLow) + fLow * blurred;
        blurred = LowPassHigh - LowPassLow;

        blurred*=alpha; // amplify , multuplying by alpha value


       resize(blurred, outFloat, src.size(), 0, 0, CV_INTER_LINEAR);   // resize back                         
           outFloat += srcFloat;      // add back to original frame
         outFloat.convertTo(out, CV_8U);         // convert to 8 bit
    }
}

0 个答案:

没有答案