如何批量用opencv裁剪图片
时间: 2023-07-04 18:27:54 浏览: 131
要批量使用OpenCV裁剪图片,可以使用Python的`os`模块来获取指定文件夹中的所有图片文件,并对每个图片文件进行裁剪操作。
以下是使用OpenCV批量裁剪图片的步骤:
1. 导入必要的模块
```
import cv2
import os
```
2. 设置裁剪区域的坐标
```
x = 100
y = 100
w = 200
h = 200
```
这里的x、y是裁剪区域左上角的坐标,w、h是裁剪区域的宽和高。
3. 遍历指定文件夹中的所有图片文件,并进行裁剪操作
```
folder_path = 'your_folder_path'
save_path = 'your_save_path'
for file_name in os.listdir(folder_path):
# 判断文件是否为图片文件
if file_name.endswith('.jpg') or file_name.endswith('.png'):
# 读取图片
img_path = os.path.join(folder_path, file_name)
img = cv2.imread(img_path)
# 裁剪图片
crop_img = img[y:y+h, x:x+w]
# 保存裁剪后的图片
save_img_path = os.path.join(save_path, file_name)
cv2.imwrite(save_img_path, crop_img)
```
完整代码:
```
import cv2
import os
x = 100
y = 100
w = 200
h = 200
folder_path = 'your_folder_path'
save_path = 'your_save_path'
for file_name in os.listdir(folder_path):
if file_name.endswith('.jpg') or file_name.endswith('.png'):
img_path = os.path.join(folder_path, file_name)
img = cv2.imread(img_path)
crop_img = img[y:y+h, x:x+w]
save_img_path = os.path.join(save_path, file_name)
cv2.imwrite(save_img_path, crop_img)
```
需要注意的是,上面的代码中,`folder_path`是指包含所有图片文件的文件夹路径,`save_path`是指保存裁剪后图片的文件夹路径。在运行代码前,需要将这两个路径替换为自己的路径。
阅读全文