std::string = argv[1]; std::string img_path = argv[2];
时间: 2024-06-05 14:13:07 浏览: 14
这段代码是在 C++ 程序中获取命令行参数,将第一个参数赋值给变量 name,将第二个参数赋值给变量 img_path,两个变量的类型都是 std::string。
通常情况下,程序需要从命令行获取用户输入的参数,例如执行一个图片处理程序时,需要指定图片文件的路径作为参数。这时候就可以使用 argc 和 argv 参数来获取用户输入的参数。其中,argc 是一个整数,表示命令行参数的个数;argv 是一个字符串指针数组,其中每个元素指向一个命令行参数。第一个参数 argv[0] 是程序的名称,而后面的参数依次是用户输入的参数。
相关问题
int main(int argv, char** argc) { if (argv < 3) { std::cout << "参数过少,请至少指定左右影像路径!" << std::endl; return -1; } printf("Image Loading..."); //···············································································// // 读取影像 std::string path_left = argc[1]; std::string path_right = argc[2]; cv::Mat img_left = cv::imread("C:/view1.png", cv::IMREAD_COLOR); cv::Mat img_right = cv::imread("C:/view5.png", cv::IMREAD_COLOR);
这段代码的作用是读取两张图片(左右影像),并将它们存储在img_left和img_right两个Mat对象中。如果执行程序时输入的参数少于两个,程序会输出一条错误信息并返回-1。其中,左影像的路径为argc[1],右影像的路径为argc[2]。这段代码使用了OpenCV库的imread函数来读取影像。需要注意的是,程序中指定的影像路径可能需要根据实际情况进行修改。
namespace fs = std::filesystem;这句话我这里显示错误
如果您的编译器不支持 C++17,可能会出现该错误。在这种情况下,您需要使用以下方法来遍历目录:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
// 指定文件夹路径
string folder_path = "your/folder/path";
for (const auto& file : fs::directory_iterator(folder_path))
{
if (file.path().extension() == ".jpg" || file.path().extension() == ".png")
{
// 读取图片
Mat img = imread(file.path().string());
// 显示图片
imshow("Image", img);
waitKey(0);
}
}
return 0;
}
```
这里我们使用 `std::experimental::filesystem` 命名空间代替 `std::filesystem` 命名空间。这个命名空间在 C++17 之前是实验性的,因此被称为实验性文件系统库。如果您的编译器支持 C++17,则应该使用 `std::filesystem` 命名空间。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)