Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将openCv中的曲线从ROI转换为帧_C++_Opencv_Math_Matrix - Fatal编程技术网

C++ 将openCv中的曲线从ROI转换为帧

C++ 将openCv中的曲线从ROI转换为帧,c++,opencv,math,matrix,C++,Opencv,Math,Matrix,我目前正在做一个项目,我使用opencv在图像中找到一条曲线。因此,我设置了一个感兴趣的区域,在这里我寻找曲线。现在我的问题是,当我计算多项式的参数(比如二次)时,我使用ROI的相对坐标,但我想将函数的参数(存储在cv::Mat中)转换为原始图像。 我正在寻找的解决方案应该适用于任何次多项式 更准确地说,我有多项式相对于ROI的函数参数,但我想要原始图像的参数。假设多项式是函数f(x)。然后g(x)=f(x)+a将其垂直移动a个单位(正a将函数向上移动) 函数h(x)=f(x-b)*水平移动函数

我目前正在做一个项目,我使用opencv在图像中找到一条曲线。因此,我设置了一个感兴趣的区域,在这里我寻找曲线。现在我的问题是,当我计算多项式的参数(比如二次)时,我使用ROI的相对坐标,但我想将函数的参数(存储在cv::Mat中)转换为原始图像。 我正在寻找的解决方案应该适用于任何次多项式


更准确地说,我有多项式相对于ROI的函数参数,但我想要原始图像的参数。

假设多项式是函数f(x)。然后g(x)=f(x)+a将其垂直移动a个单位(正a将函数向上移动)

函数h(x)=f(x-b)*水平移动函数(正b将函数向右移动)

因此,要水平移动多项式b单位,垂直移动多项式a单位,应将变换定义为T(x,a,b)=f(x-b)+a

在您的例子中,a=roi.y;b=roi.x;假设图像坐标从0,0开始

这是我制作的一个互动演示的链接。您可以针对不同的功能进行测试,并移动滑块。

谢谢您的回答。但现在我想在转换后的函数中去掉a和b。我可以简单地把a加到f’的常数项上。但是b呢。让我更精确一点:如果f有参数p1,p2。。。请注意。f'p'1,p'2等等。我如何计算p'n,这样我就没有x-b了。例如,f\left(x\right)\=\0.5x^2+x-2应该用b=1进行转换。转换后的函数可以写成h\left(x\right)\=\0.5x^2-2.5\.您必须将函数简化为最简单的版本。这有一些算法,但我不明白你为什么要这么做,因为这会对性能产生重大影响。