将多张图片依次存储cv2.imwrite()代码
时间: 2023-06-08 17:03:59 浏览: 258
可以将多张图片存储在同一个文件夹内,然后使用以下代码将它们依次存储:
```
import cv2
import os
image_folder = 'path/to/folder/with/images'
output_folder = 'path/to/output/folder'
for filename in os.listdir(image_folder):
image = cv2.imread(os.path.join(image_folder, filename))
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, image)
```
在代码中,首先定义了一个包含图片的文件夹路径和一个存储输出图片的文件夹路径。然后使用 `os.listdir()` 函数获取图片文件夹中的所有文件名,通过 `cv2.imread()` 函数读取每个文件并将其存储到 `output_folder` 中。
相关问题
利用opencv,依次取出一张图片中的红、绿、黄三个二维码,并转化为白底黑字的三个二维码,分别存储为red.png、green.png、yellow.png
下是一个利用opencv实现该功能的Python代码:
```python
import cv2
# 读取原始图片
img = cv2.imread("original.png")
# 将图片转为HSV格式
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 设定红色、绿色、黄色的HSV阈值
lower_red = (0, 100, 100)
upper_red = (10, 255, 255)
lower_green = (40, 100, 100)
upper_green = (70, 255, 255)
lower_yellow = (20, 100, 100)
upper_yellow = (30, 255, 255)
# 根据阈值提取红色、绿色、黄色部分并转化为白底黑字的二维码
red_mask = cv2.inRange(hsv, lower_red, upper_red)
red_qrcode = cv2.bitwise_not(red_mask)
green_mask = cv2.inRange(hsv, lower_green, upper_green)
green_qrcode = cv2.bitwise_not(green_mask)
yellow_mask = cv2.inRange(hsv, lower_yellow, upper_yellow)
yellow_qrcode = cv2.bitwise_not(yellow_mask)
# 存储三个二维码
cv2.imwrite("red.png", red_qrcode)
cv2.imwrite("green.png", green_qrcode)
cv2.imwrite("yellow.png", yellow_qrcode)
```
注意在上面的代码中,我们先将原始图片转换为HSV格式,再根据设定的阈值提取出红色、绿色、黄色部分。最后利用`cv2.bitwise_not()`将二维码转化为白底黑字,再将三个二维码分别存储为`red.png`、`green.png`、`yellow.png`。
识别一张有红、绿、黄三个二维码的图片,依次取出红、绿、黄三个二维码,并转化为白底黑字的三个二维码,分别存储为red.png、green.png、yellow.png
这个任务可以使用Python中的OpenCV和ZBar库来完成。
首先,需要安装这两个库,可以使用以下命令:
```
pip install opencv-python
pip install pyzbar
```
然后,可以使用以下代码来读取图片中的三个二维码并转化为白底黑字的二维码:
```python
import cv2
from pyzbar import pyzbar
# 读取图片
img = cv2.imread('qrcode.png')
# 查找二维码并识别
barcodes = pyzbar.decode(img)
# 遍历二维码
for barcode in barcodes:
# 获取二维码位置和内容
x, y, w, h = barcode.rect
data = barcode.data.decode('utf-8')
print(data)
# 根据二维码颜色,定义不同的输出文件名
if data.startswith('RED:'):
filename = 'red.png'
elif data.startswith('GREEN:'):
filename = 'green.png'
elif data.startswith('YELLOW:'):
filename = 'yellow.png'
else:
continue
# 提取二维码图像,转化为白底黑字
qr_img = img[y:y+h, x:x+w]
qr_img = cv2.cvtColor(qr_img, cv2.COLOR_BGR2GRAY)
qr_img = cv2.threshold(qr_img, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
# 保存输出文件
cv2.imwrite(filename, qr_img)
```
这个代码会从名为“qrcode.png”的图片中查找所有的二维码,并识别它们的内容。如果二维码内容以“RED:”、“GREEN:”或“YELLOW:”开头,就会分别将其转化为白底黑字的图像,并保存为“red.png”、“green.png”或“yellow.png”。
阅读全文