利用python和opencv批量去掉图片黑边
时间: 2023-06-28 07:12:48 浏览: 175
可以通过以下步骤批量去掉图片黑边:
1. 导入opencv库和os库
```python
import cv2
import os
```
2. 定义函数,用于去掉图片黑边
```python
def remove_black_edge(image_path, save_path):
# 读取图片
img = cv2.imread(image_path)
# 将图片转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
# 寻找最大轮廓
max_area = 0
contour_index = 0
for index in range(len(contours)):
contour = contours[index]
area = cv2.contourArea(contour)
if area > max_area:
max_area = area
contour_index = index
# 获取最大轮廓的矩形框
x, y, w, h = cv2.boundingRect(contours[contour_index])
# 裁剪图片
img_cropped = img[y:y+h, x:x+w]
# 保存图片
cv2.imwrite(save_path, img_cropped)
```
3. 循环遍历文件夹中的图片,调用函数去掉黑边并保存
```python
# 图片所在文件夹路径
folder_path = "path/to/folder"
# 遍历文件夹中的所有图片
for filename in os.listdir(folder_path):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 图片路径
image_path = os.path.join(folder_path, filename)
# 去掉黑边后保存的路径
save_path = os.path.join(folder_path, "no_black_edge_" + filename)
# 去掉黑边并保存
remove_black_edge(image_path, save_path)
```
以上就是利用python和opencv批量去掉图片黑边的方法。
阅读全文