小编Jai*_*Jai的帖子

从 std::filesystem::directory_iterator() 获取最后一个文件名而不迭代?

我正在尝试获取最后一个文件名。下面的代码非常优雅。但它正在遍历目录中的所有文件。 是否可以在不迭代的情况下获取最后一个文件?

#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)

已编辑:目录中的文件已按字母顺序递增。我想选择最新的文件,它已经确定是按字母顺序排列的最后一个文件。由于可能有数百万个文件,我试图避免迭代。

c++ c++17 std-filesystem

6
推荐指数
1
解决办法
201
查看次数

如何不失真 I420 图像数据?有效率的

我能够成功地对 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 中的 …

opencv yuv remap distortion

4
推荐指数
1
解决办法
877
查看次数

标签 统计

c++ ×1

c++17 ×1

distortion ×1

opencv ×1

remap ×1

std-filesystem ×1

yuv ×1