我正在尝试获取最后一个文件名。下面的代码非常优雅。但它正在遍历目录中的所有文件。 是否可以在不迭代的情况下获取最后一个文件?
#include <filesystem>
std::string latestFileName;
for (const auto &entry : fs::directory_iterator("/media/jai/Entertainment"))
latestFileName = entry.path();
std::cout << latestFileName << std::endl;
Run Code Online (Sandbox Code Playgroud)
已编辑:目录中的文件已按字母顺序递增。我想选择最新的文件,它已经确定是按字母顺序排列的最后一个文件。由于可能有数百万个文件,我试图避免迭代。
我能够成功地对 RGB 图像进行失真处理。
现在,我正在直接处理 I420 数据,而不是先将其转换为 RGB。
以下是我在相机校准后遵循的步骤。
K = cv::Matx33d(541.2152931632737, 0.0, 661.7479652584254,
0.0, 541.0606969363056, 317.4524205037745,
0.0, 0.0, 1.0);
D = cv::Vec4d(-0.042166406281296365, -0.001223961942208027, -0.0017036710622692108, 0.00023929900459453295);
newSize = cv::Size(3400, 1940);
cv::Matx33d new_K;
cv::fisheye::estimateNewCameraMatrixForUndistortRectify(K, D, cv::Size(W, H), cv::Mat::eye(3, 3, CV_64F), new_K, 1, newSize); // W,H are the distorted image size
cv::fisheye::initUndistortRectifyMap(K, D, cv::Mat::eye(3, 3, CV_64F), new_K, newSize, CV_16SC2, mapx, mapy);
cv::remap(src, dst, mapx, mapy, cv::INTER_LINEAR);
Run Code Online (Sandbox Code Playgroud)
上面的代码成功地给了我未失真的图像。
现在我想不失真 I420 数据。所以,现在我的 src 将是一个 I420/YV12 数据。如何不失真 I420 数据,而不先将其转换为 RGB?
顺便说一下,I420 是一种只有 1 个通道的图像格式(与 RGB 中的 …