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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/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中的polarToCart和cartToPolar函数_C++_Opencv_Image Processing - Fatal编程技术网

C++ opencv中的polarToCart和cartToPolar函数

C++ opencv中的polarToCart和cartToPolar函数,c++,opencv,image-processing,C++,Opencv,Image Processing,嘿,我有一个圆形图像,我想在openCV中制作一个笛卡尔坐标 我已经在matlab上成功地实现了它,但是我想在OpenCV上实现它 在互联网上挖掘了一些信息之后。我发现实际上有一些函数叫做logPolar、polarToCart和cartToPolar。然而,OpenCV官方文档缺少使用它们的信息。因为我不太了解这些函数的参数,所以我不能真正使用它们 那么,有人能给我(实际上我想很多人都在寻找)一个合适的例子来使用这些函数吗? 以防万一,我也分享我的样本图像 提前感谢如果您使用的是opencv

嘿,我有一个圆形图像,我想在openCV中制作一个笛卡尔坐标

我已经在matlab上成功地实现了它,但是我想在OpenCV上实现它

在互联网上挖掘了一些信息之后。我发现实际上有一些函数叫做logPolar、polarToCart和cartToPolar。然而,OpenCV官方文档缺少使用它们的信息。因为我不太了解这些函数的参数,所以我不能真正使用它们 那么,有人能给我(实际上我想很多人都在寻找)一个合适的例子来使用这些函数吗? 以防万一,我也分享我的样本图像


提前感谢

如果您使用的是opencv3,您可能需要:

注意,对于这两个版本,您都需要一个单独的src和dst映像(就地不工作)

或:

[编辑:]

如果您仍在使用opencv2.4,则只能使用神秘的c-api函数,并且需要IplImage转换(不推荐使用):


(polarToCart和cartToPolar在point coords上工作,而不是在图像上)

@Rodrane,仍然缺少一些东西吗?是的,仍然缺少一些东西我想这是因为我正在使用2.4x下载openCV 3来测试它。它在openCV 3.0上运行良好,但在2.4上不工作。谢谢您的帮助!
#include "opencv2/opencv.hpp"  // needs imgproc, imgcodecs & highgui

Mat src = imread("my.png", 0); // read a grayscale img
Mat dst; // empty.
linearPolar(src,dst, Point(src.cols/2,src.rows/2), 120, INTER_CUBIC );
imshow("linear", dst);
waitKey();
logPolar(src,dst,Point(src.cols/2,src.rows/2),40,INTER_CUBIC );
Mat src=...;
Mat dst(src.size(), src.type()); // yes, you need to preallocate here

IplImage ipsrc = src; // new header, points to the same pixels
IplImage ipdst = dst;


cvLogPolar( &ipsrc, &ipdst, cvPoint2D32f(src.cols/2,src.rows/2), 40, CV_INTER_CUBIC);

// result is in dst, no need to release ipdst (and please don't do so.)