ubuntu20.04中写一个C++代码利用opencv读取.txt文件,将txt文件中的点生成一张图片
时间: 2024-05-03 12:20:32 浏览: 113
可以的,需要用到以下步骤:
1. 安装OpenCV
在终端中输入以下命令:
```
sudo apt update
sudo apt install libopencv-dev
```
2. 编写C代码
在Ubuntu 20.04中打开一个文本编辑器,输入以下代码:
```c
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: %s <input_file>\n", argv[0]);
return -1;
}
FILE *file;
char *filename = argv[1];
char line[256];
std::vector<Point2f> points;
// open file
file = fopen(filename, "r");
// read file line by line
while (fgets(line, sizeof(line), file)) {
// parse line to get x,y values
float x, y;
sscanf(line, "%f %f", &x, &y);
Point2f pt;
pt.x = (float)x;
pt.y = (float)y;
points.push_back(pt);
}
fclose(file);
// create image
Mat img = Mat::zeros(500, 500, CV_8UC3);
// draw points on image
Scalar color(0, 0, 255);
for (int i = 0; i < points.size(); i++) {
Point2f pt = points[i];
circle(img, pt, 1, color, -1);
}
imshow("points", img);
waitKey(0);
return 0;
}
```
3. 保存代码
将上述C代码保存为一个文件,例如`readtxt.cpp`。
4. 编译代码
在终端中输入以下命令:
```
g++ -o readtxt readtxt.cpp `pkg-config --cflags --libs opencv`
```
5. 运行程序
在终端中输入以下命令:
```
./readtxt input.txt
```
其中`input.txt`是你要读取的txt文件名。程序会以图形界面的方式显示生成的图片。
希望对你有所帮助。
阅读全文