Ana*_*mov 3 c++ opencv image-processing
嘿,我有一个圆形图像,我想在 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();
Run Code Online (Sandbox Code Playgroud)

或logPolar:
logPolar(src,dst,Point(src.cols/2,src.rows/2),40,INTER_CUBIC );
Run Code Online (Sandbox Code Playgroud)

[编辑:]
如果你还在使用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.)
Run Code Online (Sandbox Code Playgroud)
(polarToCart 和 cartToPolar 适用于点坐标,而不适用于图像)
| 归档时间: |
|
| 查看次数: |
4207 次 |
| 最近记录: |