公司一款有一款模拟摄像头,一直以来以手持CVBS显示器查看图像,非常不便,于是网上找来CVBS转USB模组,连接起来实现在电脑端查看图像。因摄像头是定焦镜头,检测人员需对调整的焦距进行确认,人眼判别误差较大,既然数据可以通过USB在电脑端显示于是有了使用PYTHON+OPENCV实现图像质量简单的判别。
调试环境使用spyder3.10,在IDE内下载opencv库,调用摄像头,对每帧图像进行灰度处理及计算方差,把方差值显示在图像上。
import cv2
#设置摄像头的ID
data = int(input("please enter the number 0 or 1 or 2: "))
capture=cv2.VideoCapture(data)
while true:
ret, frame = capture.read()
img2gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #转化为灰度图
imageVar = cv2.Laplacian(img2gray, cv2.CV_64F).var() #计算出方差,并最后返回。
cv2.putText(frame, 'IQA: %.2f' %imageVar, (20, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (55,255,155), 2) #在图像上设置文本格式;
print('IQA: %.2f' %imageVar) #显示方差值
#设置显示分辨率 此分辨率是显示窗口的分辨率,不是摄像头输出的分辨率
frame = cv2.resize(frame, (1024, 768))
cv2.imshow("video",frame)