opencv 读取大量图片
时间: 2023-11-09 12:53:40 浏览: 30
如果要读取大量图片,可以使用opencv中提供的cv::glob函数,该函数可以根据指定的文件路径和文件类型,返回该路径下所有符合要求的文件名。
示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
using namespace cv;
using namespace std;
int main()
{
vector<string> img_files;
string img_path = "path/to/images/*.jpg"; // 图片路径和类型
glob(img_path, img_files, false); // 获取所有符合要求的文件名
for (int i = 0; i < img_files.size(); i++)
{
Mat img = imread(img_files[i]); // 读取图片
// 处理图片
}
return 0;
}
```
在上述示例代码中,使用glob函数获取符合要求的文件名,然后使用循环读取每一张图片并进行处理。注意,glob函数返回的文件名是包含路径信息的,需要使用imread函数读取图片时要加上路径信息。
相关问题
opencv拼接大量图片
这道题的意思是如何用Python拼接两张图片。
可以使用OpenCV库中的cv2模块来完成。
步骤如下:
1. 读取两张图片,可以使用cv2.imread()函数,传入图片路径获取图片对象。
2. 将两张图片拼接在一起,可以使用cv2.hconcat()函数,将两张图片水平拼接在一起。
3. 可以将拼接好的图片保存到本地,使用cv2.imwrite()函数,传入文件路径和图片对象保存即可。
代码示例:
```python
import cv2
# 读取图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 拼接图片
result = cv2.hconcat([img1, img2])
# 保存图片
cv2.imwrite('result.jpg', result)
```
运行后会在当前目录下生成result.jpg图片,即是两张图片拼接后的结果。
python读取大量png图片使用opencv存入list
要读取大量PNG图片并使用OpenCV库存储在列表中,你可以使用Python的`os`模块来获取图片文件的路径列表,然后使用`cv2.imread()`函数读取并存储在列表中。以下是一个示例代码:
```python
import os
import cv2
# 获取图片文件路径列表
directory = "images"
file_list = os.listdir(directory)
image_paths = [os.path.join(directory, file) for file in file_list if file.endswith(".png")]
# 读取并存储图片到列表中
images = []
for path in image_paths:
image = cv2.imread(path)
images.append(image)
```
其中,`os.listdir()`函数用于获取目录下的文件列表,`os.path.join()`函数用于拼接文件路径,`file.endswith(".png")`用于筛选PNG图片文件;`cv2.imread()`函数用于读取PNG图片,参数为图片文件的路径;`images.append()`函数用于将读取的图片存储在列表中。你可以将上述代码复制到Python文件中并执行,替换`directory`为你的PNG图片文件所在的目录路径。