Python_OpenCV对摄像头图像进行对焦判断
无参考图像的清晰度评价方法(代码实现Python)/版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。/https://blog.csdn.net/gaoyi221119/article/details/103782288
试了试前三种方法,一个一秒一帧一个5秒一帧,只有cv2.Laplacian能跟得上摄像头的连续出图,后面的看了下似乎也都是需要各种高强度计算,懒得测试了
主要:
while (cv2.waitKey(1) != 27):print(cv2.Laplacian(mat,cv2.CV_64F).var())#mat:灰度图,返回的值越大图像越清晰对焦越准确cv2.imshow(u"Camera", mat)#显示图像数据
完整:
用的摄像头用OpenCV打不开,只能用厂家提供的SDK,代码肯定不能和其他摄像头通用,用的黑白摄像头,彩色的话要先把图像转换成灰度图
import numpy as np
import cv2
import mathfrom dvp import *def frame2mat(frameBuffer):frame, buffer = frameBufferbits = np.uint8 if(frame.bits == Bits.BITS_8) else np.uint16shape = NoneconvertType = Noneif(frame.format >= ImageFormat.FORMAT_MONO and frame.format <= ImageFormat.FORMAT_BAYER_RG):shape = 1elif(frame.format == ImageFormat.FORMAT_BGR24 or frame.format == ImageFormat.FORMAT_RGB24):shape = 3elif(frame.format == ImageFormat.FORMAT_BGR32 or frame.format == ImageFormat.FORMAT_RGB32):shape = 4else:return Nonemat = np.frombuffer(buffer, bits)mat = mat.reshape(frame.iHeight, frame.iWidth, shape) #转换维度return matdef brenner(img):'''Brenner 梯度函数:param img:narray 二维灰度图像:return: float 图像约清晰越大1FPS'''shape = np.shape(img)out = 0for x in range(0, shape[0]-2):for y in range(0, shape[1]):out+=(int(img[x+2,y])-int(img[x,y]))**2return outdef Laplacian(img):'''Laplacian梯度函数:param img:narray 二维灰度图像:return: float 图像约清晰越大30FPS'''return cv2.Laplacian(img,cv2.CV_64F).var()def SMD(img):'''SMD(灰度方差):param img:narray 二维灰度图像:return: float 图像约清晰越大0.2FPS'''shape = np.shape(img)out = 0for x in range(0, shape[0]-1):for y in range(1, shape[1]):out+=math.fabs(int(img[x,y])-int(img[x,y-1]))out+=math.fabs(int(img[x,y]-int(img[x+1,y])))return outcamera = Camera(0)#以索引号的方式打开相机
camera.Start()#启动视频流cv2.namedWindow(u"Camera",0)#可以拖动窗口大小
cv2.resizeWindow(u"Camera", 640, 480)#设置窗口大小
cv2.moveWindow(u"Camera",1200,500)#设置窗口位置while (cv2.waitKey(1) != 27):frame = camera.GetFrame(3000)#从相机采集图像数据,超时时间为3000毫秒mat = frame2mat(frame)#转换为标准数据格式print(Laplacian(mat))cv2.imshow(u"Camera", mat)#显示图像数据
试了下效果,Laplacian对常规场景的判断对焦和失焦的值差距不是很大,对上焦是80左右的数值,失焦也就60左右
但对电子屏幕似乎有奇效,朝着电脑屏幕对上焦后数值能飙到800多
对准焦距:
焦距过长:
焦距过短:
Python_OpenCV对摄像头图像进行对焦判断相关推荐
- Unity开发《一起来捉妖》教程 | 2.用摄像头图像做背景
洪流学堂,让你快人几步.你好,我是郑洪智. 洪流学堂公众号回复捉妖,可以获取本教程的源码工程. 小新:"我们接下来是不是需要将显示融合到屏幕上,才能称得上是AR呢?" 大智:&qu ...
- 树莓派4B (Raspberry pi 32 bit)安装uv4l驱动,解决opencv无法获取CSI摄像头图像问题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 环境描述: 问题描述:我希望用opencv调用csi摄像头(最开始我只有USB摄像头,可是我无论怎么调用都无法出图像,就 ...
- orangepi-zero2使用tft-lcd实时显示USB摄像头图像-2
目录 一.USB摄像头驱动 二.上代码 本文使用环境: 电脑:Ubuntu 18.04.5 LTS 开发板:orangepi-zero2 交叉编译器:aarch64-none-linux-gnu- 摄 ...
- USB摄像头驱动--LCD显示摄像头图像(附Makefile分析)
对于一个应用程序,最重要的是明白目的是什么:将摄像头的数据解析出来,按一帧一个图片的方式将数据传到LCD的Framebuffer中去(如果LCD没有自动将Framebuffer中的数据刷到LCD上还需 ...
- Qt 中获取摄像头图像数据的方法
Qt 中获取摄像头图像数据的方法 在 Qt 中提供了 QCamera 类用来操作摄像头.(这里的摄像头指的是电脑上常用的那种 USB 摄像头或网络摄像头,暂时还不支持工业相机.)摄像头获取的实时图像可 ...
- ADAS摄像头图像环视拼接算法
ADAS摄像头图像环视拼接算法 输入输出接口 Input: (1)4个摄像头采集的图像视频分辨率 (整型int) (2)4个摄像头采集的图像视频格式 (RGB,YUV,MP4等) (3)摄像头标定参数 ...
- 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )
文章目录 安卓直播推流专栏博客总结 一. 编写快速搭建 RTMP 服务器 Shell 脚本 二. RTMP 快速搭建方法 三.创建阿里云 RTMP 服务器镜像 四.浏览器查看直播内容 五.前置 / 后 ...
- html 输入框并行,Python:输入文本框并行捕获userinput到OpenCV Live网络摄像头图像...
我有一个简单的脚本运行流式传输我的网络摄像头的图像,我想做一些像canny-filter和hough转换一样的操作来检测liveimage中的行:Python:输入文本框并行捕获userinput到O ...
- linux图形图像驱动,Linux_Linux操作系统下USB图像采集驱动的安装,ARMlinux下USB摄像头图像的采集 - phpStudy...
Linux操作系统下USB图像采集驱动的安装 ARMlinux下USB摄像头图像的采集很难,往往望而却步.相比较LINUX系统下的摄像头驱动的安装简单的多,下面就介绍我的安装过程. 我使用的linux ...
最新文章
- BFD与IGP快速收敛应用测试
- GitHub 大热!也许会成为你心中的OCR开源工具NO1!
- 蓝牙 GameKit
- Hyperledger Fabric权限进阶篇
- @WebInitParam注解
- 《深入解析 MAC OS X iOS 操作系统》PDF 带书签
- Information Retrieval 倒排索引 学习笔记
- 前端学习(1860)vue之电商管理系统电商系统之渲染login组件并且实现路由重定向
- html5和flash播放器
- 结合Kubernetes解读微服务的12要素
- mysql的comment_mysql的comment怎么用
- Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for...
- ffmpeg 推流 在H264中插入SPS、PPS 头
- Linux分区的那些方案
- 转 matlab卷积函数介绍 conv filter conv2
- 瑞星linux病毒库位置,瑞星杀毒软件V16+怎样离线升级病毒库 病毒库离线升级办法...
- 各种排序是否稳定,不稳定是为什么
- msdn原版系统和原版office
- Web:仿苹果官网首页HTML和CSS
- python制作流动图_炫酷!用Python制作漂亮的流动桑基图