مشتق شدن از کلاس cv::Mat - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مشتق شدن از کلاس cv::Mat

+1 امتیاز

سلام.

قصد دارم کلاسی بسازم که این کلاس از cv::Mat مشتق شده باشه به نام Test .

const int width = 10;
const int height = 10;

class Test :public cv::Mat{
public:
   Test(int w = width,int h = height):Mat(h,w,CV_32SC1){}
}

مشکلی که پیش میاد وقتی از این کلاس به صورت زیر استفاده می کنم نمی تونه عملیات cast را انجام بده.

Mat a(5,5,CV_8UC1);
a.setTo(10);
Test b;
b =  a.clone();

چه راهی پیشنهاد میدید؟

سوال شده شهریور 29, 1393  بوسیله ی Xavi (امتیاز 627)   24 83 110

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

برای اینکار operator= را overload کنید و سپس با توجه به تصویر ورودی فضا گرفته و محتوای تصویر ورودی را کپی نمائید.

void Test::operator=(const Mat &value){
   this->create(value.size(),CV_32SC1);
   value.convertTo(*this,CV_32SC1);
}

 

پاسخ داده شده شهریور 31, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد مهر 3, 1393 بوسیله ی Xavi
...