opencv批量去除3000张图像白色背景
时间: 2023-07-24 18:07:34 浏览: 112
opencv实现逼真贴图 白色背景被去除 看着就只显示轮廓
4星 · 用户满意度95%
要批量去除3000张图像的白色背景,你可以使用以下步骤:
1. 创建一个循环来迭代处理每张图像。假设你的图像文件名是以数字顺序命名的,例如image_1.jpg, image_2.jpg, image_3.jpg,依此类推。
```python
import cv2
import numpy as np
for i in range(1, 3001):
filename = f"image_{i}.jpg"
image = cv2.imread(filename)
# 在这里添加去除白色背景的代码
```
2. 在循环内部,按照之前提到的方法去除每张图像的白色背景。
```python
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_white = np.array([0, 0, 200], dtype=np.uint8)
upper_white = np.array([255, 30, 255], dtype=np.uint8)
mask = cv2.inRange(hsv_image, lower_white, upper_white)
result = cv2.bitwise_and(image, image, mask=mask)
```
3. 将处理后的图像保存到新的文件中。
```python
output_filename = f"output_{i}.jpg"
cv2.imwrite(output_filename, result)
```
4. 完整的代码如下:
```python
import cv2
import numpy as np
for i in range(1, 3001):
filename = f"image_{i}.jpg"
image = cv2.imread(filename)
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_white = np.array([0, 0, 200], dtype=np.uint8)
upper_white = np.array([255, 30, 255], dtype=np.uint8)
mask = cv2.inRange(hsv_image, lower_white, upper_white)
result = cv2.bitwise_and(image, image, mask=mask)
output_filename = f"output_{i}.jpg"
cv2.imwrite(output_filename, result)
```
将这段代码保存到一个 Python 脚本文件中,确保图像文件与脚本文件在同一个目录下,然后运行脚本即可批量去除图像的白色背景并保存结果。请注意,这个方法还是假设白色背景的像素值在一定的范围内,如果你的图像背景不是纯白色,你可能需要根据实际情况调整阈值。
阅读全文