继上一篇文章Opencv+python打开摄像头拖动滑动条取颜色阈值得到阈值之后,我们需要对图片进行二值化,怕自己忘了不好找,特此记录一下。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/5/24 19:38
# @Author : 若谷
# @File : 根据选出的阈值二值化.py
# @Software: PyCharm
import cv2
import numpy as np
frame = cv2.imread('./images/car1.jpg')
resize = cv2.resize(frame, None, fx=0.5, fy=0.5) # 按比例缩放图像
hsv = cv2.cvtColor(resize, cv2.COLOR_BGR2HSV)
# 设定阈值,阈值为自己确定,阈值选择方法参考上一篇博客
low = np.array([53, 130, 62])
high = np.array([135, 237, 242])
# 根据阈值构建掩膜
mask = cv2.inRange(hsv, low, high)
# 对原图像和掩膜进行位运算
res = cv2.bitwise_and(resize, resize, mask=mask)
# 显示结果
cv2.imshow('res',res)
cv2.imshow('mask',mask)
if cv2.waitKey(0) & 0xFF == 27:
cv2.destroyAllWindows()
得到这样的图像之后可以方便我们做后面的处理。