利用opencv,依次取出一张图片中的红、绿、黄三个二维码,并转化为白底黑字的三个二维码,分别存储为red.png、green.png、yellow.png
时间: 2023-12-06 09:45:44 浏览: 74
下是一个利用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`。
阅读全文