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

ماتریس مختلط در OpenCV

0 امتیاز
سلام . دوستانی که با تجربه هستید در OpenCV من مشغول تبدیل کدی از متلب به OpenCv هستم آیا این امکان وجود داره تصویر مختلط داشته باشیم و تمام عملگر های مختلط را پشتیبانی کنه؟
سوال شده اسفند 4, 1397  بوسیله ی Old (امتیاز 11)   1 2 2

1 پاسخ

0 امتیاز

بله به صورت متداول به دو صورت استفاده میشه:

روش اول بخش حقیقی و موهومی را به صورت دو تصویر مجزا استفاده کنید برای ضرب دو ماتریس مختلط می تونید از تابع cv::MulSpectrums استفاده کنید در ابتدا دو تصویر حقیقی و موهومی را یکپارچه کنید با استفاده از تابع cv::merge و بعد عملیات ضرب را انجام دهید.مزیت این روش اینه که شما اگر قصد داشته باشید عملیات کانولوشن را روی ماتریس مختلط انجام بدید به راحتی با تابع cv::split آن را به بخش موهومی و حقیقی تجزیه کنید و سپس عملیات کانولوشن بدید .

در روش دوم شما از std::complex خود کتابخانه stl استفاده کنید که در این حالت با استفاده از cv::Mat_ می تونید ماتریس کختلط بسازید به صورت زیر:

cv::Mat complex1 = cv::Mat_<std::complex<float>>(1,1) << std::complex<float>(10,10));

یکی از مشکلات این روش آنجاست که اگر شما بخواید یکی از توابع کتابخانه OpenCV را روی تصویر اعمال کنید مجبورید خودتون عملیات merge و split را به صورت دستی انجام بدید که بهینه نیست و بارمحاسباتی زیاد میشه که به صرفه نیست 

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