استفاده از تابع at کلاس Mat بدون ارسال template - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده از تابع at کلاس Mat بدون ارسال template

+1 امتیاز

وقتی ما نوع Mat را می سازیم چه دلیلی داره که هنگام دسترسی به پیکسل ها با تابع at ،حتما بایستی نوع داده هم معرفی بشه آیا راهی وجود داره برای اینکار که نوع داده ای را مشخص نکنیم؟

مثلاً یه چیزی بشه مثل کد زیر

Mat.at(i,j) == if (Mat.type == CV_8U) --> Mat.at<unsigned char>(i,j)

Mat.at(i,j) == if (Mat.type == CV_32F) --> Mat.at<float>(i,j)

 

سوال شده دی 7, 1392 بوسیله ی <<meysam>> (امتیاز 46)  
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade

1 پاسخ

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

بله راهی وجود داره.زمانیکه نوع داده ای مشخص باشه و قصد داشته باشید با تابع at به محتویات تصویر دسترسی داشته باشید بهتر به جای استفاده از کلاس Mat از کلاس Mat_ استفاده کنید که نوع تصویر را خود کلاس به عنوان template از شما دریافت می کنه مزیت این هستش که دیگه مجبور نیستید که از تابع at استفاده کنید و نوع template را به آن پاس بدید بلکه به صورت زیر می توانید عمل کنید.

Mat_<float>a(10,10);

a(10,10)=0;

 

پاسخ داده شده دی 8, 1392  بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد فروردین 2, 1393 بوسیله ی <<meysam>>
...