Python opencv自动裁剪图片指定区域并压缩成640×480
时间: 2024-02-16 14:35:32 浏览: 188
以下是Python opencv自动裁剪图片指定区域并压缩成640×480的代码:
```python
import cv2
# 读取图片
img = cv2.imread('input.jpg')
# 指定区域坐标
x, y, w, h = 100, 100, 200, 200
# 裁剪图片
crop_img = img[y:y+h, x:x+w]
# 压缩图片
resized_img = cv2.resize(crop_img, (640, 480))
# 保存图片
cv2.imwrite('output.jpg', resized_img)
```
首先,我们使用`cv2.imread`函数读取输入图片。然后,我们指定要裁剪的区域的坐标和大小。使用numpy数组的切片操作,我们可以轻松地裁剪出指定区域的图像。接下来,我们使用`cv2.resize`函数将图像压缩成640×480的大小。最后,我们使用`cv2.imwrite`函数将输出图像保存到文件中。
注意,如果指定的区域超出了图像的边界,则会发生错误。因此,在实际使用中,需要根据图像的大小和指定的区域进行合理的判断和处理。
相关问题
Python opencv自动裁剪文件夹中图片指定区域并压缩成640×480,保存到另一文件夹
下面是Python OpenCV自动裁剪文件夹中图片指定区域并压缩成640×480,保存到另一文件夹的代码:
```python
import cv2
import os
# 指定原始图像文件夹路径和目标图像文件夹路径
src_folder = "/path/to/source/folder/"
dst_folder = "/path/to/destination/folder/"
# 指定裁剪区域左上角和右下角坐标
x1, y1, x2, y2 = 100, 100, 500, 500
# 指定压缩后的图像宽度和高度
dst_width, dst_height = 640, 480
# 遍历原始图像文件夹中的所有图像文件
for filename in os.listdir(src_folder):
# 读取原始图像
src_path = os.path.join(src_folder, filename)
src_img = cv2.imread(src_path)
# 裁剪指定区域
cropped_img = src_img[y1:y2, x1:x2]
# 缩放到指定大小
dst_img = cv2.resize(cropped_img, (dst_width, dst_height))
# 保存到目标文件夹
dst_path = os.path.join(dst_folder, filename)
cv2.imwrite(dst_path, dst_img)
```
上述代码中,需要根据实际情况修改以下变量:
- `src_folder`:原始图像文件夹路径。
- `dst_folder`:目标图像文件夹路径。
- `x1, y1, x2, y2`:裁剪区域左上角和右下角坐标。
- `dst_width, dst_height`:压缩后的图像宽度和高度。
代码中使用了OpenCV的`cv2.imread`、`cv2.resize`和`cv2.imwrite`函数,分别用于读取图像、缩放图像和保存图像。在遍历原始图像文件夹中的所有图像文件时,可以使用Python的`os.listdir`函数和`os.path.join`函数来构造文件路径。
阅读全文