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

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۲۷۰ نفر آنلاین
۷۶ عضو و ۱۹۴ مهمان در سایت حاضرند

تبدیل vector به cv::Mat

+2 امتیاز
سلام .

آیا راهی وجود داره که بشه از طریق آن بک std::vector را به cv::Mat تبدیل کنیم؟
سوال شده شهریور 13, 1393  بوسیله ی ملک پور (امتیاز 145)   8 27 33

1 پاسخ

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

ساده ترین راه اینه که مستقیما از constructor با ورودی vector استفاده کرد :

	std::vector<float> vec;
	cv::Mat converted(vec);//share data
	cv::Mat converted(vec,true);//copy data

یا اگر تعداد سطر ها و سطون ها یا تعداد dimension ها مهمه میشه از سازنده های دیگه استفاده کرد:

	std::vector<float> vec;
	float* data = reinterpret_cast<float*>(vec.data());
	cv::Mat converted(2,vec.size()/2,CV_32F,data);//mat ba 2 row va n/2 column
	//cv::Mat converted=cv::Mat(2,vec.size()/2,CV_32F,data).clone(); //copy data

 

 

پاسخ داده شده شهریور 13, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد آبان 11, 1393 بوسیله ی ملک پور
...