python对图片进行批量二值化处理
时间: 2023-09-12 20:03:12 浏览: 63
可以使用Python中的OpenCV库对图片进行批量二值化处理。示例代码如下:
```python
import cv2
import os
def batch_processing(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
files = os.listdir(input_folder)
for file in files:
if file.endswith('.jpg'):
img = cv2.imread(os.path.join(input_folder, file), cv2.IMREAD_GRAYSCALE)
_, binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
cv2.imwrite(os.path.join(output_folder, file), binary)
input_folder = 'path/to/input/folder'
output_folder = 'path/to/output/folder'
batch_processing(input_folder, output_folder)
```
这段代码将输入目录中的所有jpg图片进行二值化处理,并将结果保存到输出目录中。
相关问题
基于python用opencv批量处理图片二值化
我可以回答这个问题。使用Python和OpenCV可以轻松地批量处理图像二值化。您可以使用cv2.threshold()函数来实现这一点。该函数将图像转换为灰度图像,然后将其二值化。您可以使用循环来处理多个图像。
基于python用opencv实现批量处理图像二值化
可以回答这个问题。使用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文件夹中。