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;

  };

遇到条件时,此 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 回答