opencv批量修改图片尺寸
时间: 2023-09-10 20:10:56 浏览: 48
在 OpenCV 中,可以使用 `resize` 函数来修改图片尺寸。以下是一个示例代码,可以批量修改指定目录下的所有图片尺寸:
```python
import cv2
import os
# 定义图片目录和目标尺寸
img_dir = 'path/to/images'
target_size = (640, 480)
# 遍历图片目录
for filename in os.listdir(img_dir):
# 读取图片
img_path = os.path.join(img_dir, filename)
img = cv2.imread(img_path)
# 修改尺寸
resized = cv2.resize(img, target_size)
# 保存修改后的图片
cv2.imwrite(img_path, resized)
```
在上述代码中,我们使用 `os.listdir` 函数遍历指定目录下的所有文件名。对于每个文件,我们使用 `cv2.imread` 函数读取为图片对象。然后使用 `cv2.resize` 函数修改尺寸,并将修改后的图片使用 `cv2.imwrite` 函数保存到原文件路径。最终,所有图片的尺寸都会被修改为指定的目标尺寸。
相关问题
opencv批量修改图像尺寸
你可以使用OpenCV的resize函数来批量修改图像尺寸。以下是一个示例代码,可以将指定文件夹下的所有图像缩小到一半大小并保存在另一个文件夹中:
``` python
import cv2
import os
# 原始图像文件夹和保存文件夹
input_folder = 'input_folder'
output_folder = 'output_folder'
# 获取原始图像文件夹中的所有图像文件名
img_files = os.listdir(input_folder)
# 循环遍历所有图像文件
for img_file in img_files:
# 读取图像
img = cv2.imread(os.path.join(input_folder, img_file))
# 调整图像尺寸
img_resized = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
# 保存调整后的图像到保存文件夹
cv2.imwrite(os.path.join(output_folder, img_file), img_resized)
```
在上面的代码中,我们使用os模块获取了原始图像文件夹中的所有图像文件名,并使用cv2.imread函数读取了每个图像文件。然后,我们使用cv2.resize函数将图像缩小到一半大小,并使用cv2.imwrite函数保存调整后的图像到保存文件夹中。
c++opencv批量读写图片
使用OpenCV批量读写图片可以使用以下步骤:
1. 导入OpenCV库
```
import cv2
```
2. 定义一个函数用于批量读取图片
```
def read_images(file_path):
images = []
for filename in os.listdir(file_path):
img = cv2.imread(os.path.join(file_path,filename))
if img is not None:
images.append(img)
return images
```
其中,file_path为存放图片的文件夹路径,函数返回一个包含所有图片的列表images。
3. 定义一个函数用于批量保存图片
```
def write_images(images, file_path):
for i, img in enumerate(images):
cv2.imwrite(os.path.join(file_path, str(i)+'.jpg'), img)
```
其中,images为包含所有图片的列表,file_path为保存图片的文件夹路径,函数会将images中的所有图片按照顺序保存到file_path文件夹中,文件名为0.jpg, 1.jpg, 2.jpg, ...。
4. 调用函数进行批量读取和保存
```
images = read_images('/path/to/images')
write_images(images, '/path/to/save')
```
其中,/path/to/images为存放图片的文件夹路径,/path/to/save为保存图片的文件夹路径,可以根据实际情况进行修改。