嘿,我有一个圆形图像,我想在 openCV 中制作一个笛卡尔坐标。
我已经在 matlab 上成功完成了,但是我想在 OpenCV 上完成。
在互联网上进行了一些挖掘之后。我发现实际上有称为 logPolar、polarToCart 和 cartToPolar 的函数。然而 OpenCV 官方文档缺乏使用它们的信息。由于我不太了解这些函数所采用的参数,因此我无法真正使用它们 那么有人可以给我(实际上我认为很多人都在寻找它)合适的例子来使用这些功能吗? 以防万一我也分享了我的示例图片。
提前致谢
最佳答案
如果你使用的是 opencv3,你可能需要 linearPolar :
请注意,对于这两个版本,您需要一个单独的 src 和 dst 图像(不能就地工作)
#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 :
logPolar(src,dst,Point(src.cols/2,src.rows/2),40,INTER_CUBIC );
[编辑:]
如果你还在使用opencv2.4,你只能使用神秘的c-api函数,并且需要IplImage转换(不推荐):
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.)
(polarToCart 和 cartToPolar 处理点坐标,而不是图像)
关于c++ - opencv 中的 polarToCart 和 cartToPolar 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710249/