0
class A
{
public:
    virtual ~A() {}

    virtual Process(cv::Mat& img) {}
} ;

class B : public A
{
public:

     Process(cv::Mat& inputimage)
     {

        if (img.empty())
        {
            img = inputimage.clone();
            return;
        }

       else
           cv::imshow ("image", img);
    }
private:

       cv::Mat img;

  };

この画像は、条件が発生した場合は常に空です。メインでこのコードを使用する方法は次のとおりです。

疑似コード

int main ()`
{
   A* a;

   a = new B;

   while(avi.notempty()
   {
       a.Process(nextFrame);
   }
}

コードは完全ではありませんが、基本的に問題は、変数が何らかの形で格納されていないことです。

4

1 に答える 1

0

変更したら問題が解決しました

img.copyTo(img2);

img2 = img.clone();

ありがとう !

于 2013-03-09T00:50:17.947 に答える