用python opencv实现将同文件夹下的png图片的宽和高扩展为正方形
时间: 2024-03-12 12:45:02 浏览: 102
opencv resize图片为正方形尺寸的实现方法
好的,可以使用Python的OpenCV库来实现这个功能。以下是一个简单的实现步骤:
1. 导入OpenCV库
```python
import cv2
import os
```
2. 循环读取同文件夹下的每个png图片文件
```python
for filename in os.listdir():
if filename.endswith('.png'):
# 读取图片
image = cv2.imread(filename)
```
3. 获取图片的宽和高,并确定最大边长
```python
height, width, channels = image.shape
max_size = max(width, height)
```
4. 创建一个新的正方形图片,并将原图片粘贴在正方形图片中央
```python
# 创建一个新的正方形图片
square_image = np.zeros((max_size, max_size, channels), dtype=np.uint8)
square_image.fill(255)
# 粘贴原图片在正方形图片中央
x = (max_size - width) // 2
y = (max_size - height) // 2
square_image[y:y+height, x:x+width] = image
```
5. 保存处理后的图片
```python
# 保存图片
cv2.imwrite('square_' + filename, square_image)
```
将以上代码整合成一个完整的程序,完整代码如下:
```python
import cv2
import os
import numpy as np
for filename in os.listdir():
if filename.endswith('.png'):
# 读取图片
image = cv2.imread(filename)
# 获取图片的宽和高,并确定最大边长
height, width, channels = image.shape
max_size = max(width, height)
# 创建一个新的正方形图片
square_image = np.zeros((max_size, max_size, channels), dtype=np.uint8)
square_image.fill(255)
# 粘贴原图片在正方形图片中央
x = (max_size - width) // 2
y = (max_size - height) // 2
square_image[y:y+height, x:x+width] = image
# 保存图片
cv2.imwrite('square_' + filename, square_image)
```
希望这能帮到你!
阅读全文