【发布时间】:2019-08-08 18:14:52
【问题描述】:
我的大脑与 C++ 思维紧密相连。需要帮助矢量化以下循环。
此代码试图生成一个 C++ 标头,其中包含一个数组,该数组将失真图像的每个像素位置映射到未失真坐标。
仅供参考 cameraParams 和 imgIntrinsics 之前已经由 estimateFisheyeParameters 函数和 undistortFisheyeImage 图像生成。
fileID = fopen('undistorted.h', 'w');
fprintf(fileID, '#ifndef UNDISTORTED_H\n#define UNDISTORTED_H\n\n');
fprintf(fileID, 'const float distortionFix[%d][%d][2] = {', mrows, ncols);
for y = 1:mrows
fprintf(fileID, '{');
for x = 1:ncols
undistortedPoint = undistortFisheyePoints([x y], cameraParams.Intrinsics);
undistortedPoint = undistortedPoint - imgIntrinsics.PrincipalPoint;
fprintf(fileID, '{%f, %f}', undistortedPoint);
if x < ncols
fprintf(fileID, ', ');
end
end
if (y < mrows)
fprintf(fileID, '},\n');
end
end
fprintf(fileID, '}};\n\n#endif');
【问题讨论】:
-
这里为什么需要矢量化?这段代码的执行时间是否比编译生成的头文件要长得多?
-
@CrisLuengo 进入 matlab 思维模式只是一个很好的练习,而且我只是讨厌等待。任务本身确实不是时间敏感的
标签: matlab vectorization