基于python用opencv实现批量处理图像二值化
时间: 2023-04-08 17:01:07 浏览: 310
benaryzation.zip python批量二值化可修改阈值
可以回答这个问题。使用Python和OpenCV可以实现批量处理图像二值化。可以使用cv2.threshold()函数来实现二值化,使用os模块来批量读取和保存图像。具体实现可以参考以下代码:
```python
import cv2
import os
# 定义二值化函数
def binarize(img):
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
return binary
# 定义批量处理函数
def batch_binarize(input_dir, output_dir):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.endswith('.jpg') or filename.endswith('.png'):
img_path = os.path.join(input_dir, filename)
img = cv2.imread(img_path)
binary = binarize(img)
output_path = os.path.join(output_dir, filename)
cv2.imwrite(output_path, binary)
# 调用批量处理函数
batch_binarize('input_dir', 'output_dir')
```
其中,input_dir为输入图像文件夹路径,output_dir为输出图像文件夹路径。该代码会将input_dir文件夹中所有jpg和png格式的图像进行二值化处理,并保存到output_dir文件夹中。
阅读全文