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

محاسبه توان و فاز برداری از نقاط

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

آیا برای محاسبه توان و فاز برداری از نقاط OpenCV تابعی داره؟.روش محاسبه دستی را بلدم می خوام از توابع خود OpenCV استفاده کنم که کد کم حجم تر شه
سوال شده آبان 9, 1393  بوسیله ی ملک پور (امتیاز 145)   8 27 33

1 پاسخ

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

ابتدا مقادیر x را در یک ماتریس و سپس مقادیر y را در یک ماتریس دیگر قرار داده در انتها از تابع cartToPolar جهت محاسبه توان و فاز نقاط استفاده نمائید.

#include "opencv2/opencv.hpp"

int main(int argc,const char* argv[])
{
    std::vector<cv::Point2f> sides;
    points.push_back(cv::Point2f(3, 4));
    points.push_back(cv::Point2f(6, 8));
    points.push_back(cv::Point2f(1, 1));

    cv::Mat x_parts(points.size(), 1, CV_32F, &points[0].x, 2 * sizeof(float));
    cv::Mat y_parts(points.size(), 1, CV_32F, &points[0].y, 2 * sizeof(float));

    std::cout << "x: " << x_parts.t() << std::endl;
    std::cout << "y: " << y_parts.t() << std::endl;

    cv::Mat magnitude, angle;
    cv::cartToPolar(x_parts, y_parts, magnitude, angle);

    std::cout << "\nmagnitude: " << magnitude.t();
    std::cout << "\nangle: " << angle.t() *180. / CV_PI << std::endl;
    return 0;
}

 

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