计算图像清晰度

news/2024/11/17 11:02:49/

1、方差

在相机拍照时,通常会看到相机由模糊至清晰的自动对焦过程,逐渐形成清晰度比较高的图像。其实这是非常简单的处理,,并不需要非常特殊的算法,方法各式各样好多种,而且效率极其高。

表示样品离散程度的知识:方差和标准差。仅仅利用本知识加以变化,就足够了。

当完全聚焦时,图像最清晰,图像中的高频分量也最多,突变像素与相邻像素的差值也会变大,基于这个原理,对每一个像素水平右侧邻域的两个灰度值相减再相乘,再逐个像素累加,计算相邻两个像素灰度差的平方,如下:

其中:f(x,y) 表示图像f对应像素点(x,y)的灰度值,D(f)为图像清晰度。本方法效率非常高,1280*1024大小的图片10张同时计算能在70毫秒以内完成,而且结果精准。

当然不限于是上面这一种,比如对每一个像素右侧和下侧邻域两个灰度差相乘,再逐个像素累加,也可以,比如:

也可以方差定义里说的样本点与平均值比较的方式,比如如下:

当然按公式做的话,如果是针对灰度图,背景全白而拍摄主体是黑,或背景全黑而拍摄主体全白,D(f)值结果大小会相反,所以此法还不如前面那两种方法。再比如,用下和右相邻点与自己差值平方累加。如下:

也是可以很好的放大差异,越清晰则结果值越大,越模糊则值越小。

说到这里,你会发现上面提到的,其实都是相邻像素差用乘积放大从而鉴定出谁更清晰。

      当然你可以自己改进:比如用上下左右的4个点或者8个点也可以,比如用N个点以中心点差值相乘再求和,等于是以一个小块(模板)的形式去比较计算。

      但是执行效率不如上面几种,如果觉得上面算法效率还是不能满足你的要求,也很简单,采用隔行扫描,或间隔多行的方式,瞬间效率提升几倍。

2、通过拉普拉斯算子求梯度

拉普拉斯算子模块是利用拉普拉斯算子求梯度的模块,拉普拉斯算子是一种二阶导数算子,对于一个连续函数f(x,y),它的位置(x,y)的拉普拉斯值定义为:

在数字图像中,计算函数的拉普拉斯值也可以借助各种模板实现,这里对模板的基本要求是对应中心像素系数为正,面对应中心像素邻近像素的系数为负,面它们的和等于零。选择如下的拉普照拉斯算子模板,

-1

-1

-1

-1

8

-1

-1

-1

-1

则计算过程为:

E=8I(x,y)-I(x-1,y-1)-I(x-1,y)-I(x-1,y+1)-I(x,y-1)-I(x,y+1)-I(x+1,y-1)-I(x+1,y)-I(x+1,y+1);

对于一幅模糊的图像,在每一像素附近的灰度值变化小,则E值小,对于清晰的图像,图像的轮廓鲜明,E值会大,最清晰则E值(即梯度值)最大。

拉普拉斯算子模块内的实现为使用fifo缓存出如图3所示的一个3x3的矩阵,对整帧图像求E的和,相当于对整帧图像做卷积再求和,得到图像的梯度值,输出给聚焦模块进行判断。

3  fifo缓存出一个3x3的像素的矩阵


http://www.ppmy.cn/news/167279.html

相关文章

科学计算机怎么取消math,多功能科学图形计算器(Mathlab)

多功能科学图形计算器(Mathlab)是一款非常科学的集成代数图形计算器,是中小学生和大学生研究生,以及任何有复杂计算需求者必不可少的计算工具。设计这款软件的目的是取代笨重而昂贵的手持式计算器,并适用于几乎所有的安卓手机或平板电脑。 多…

十五个AI图像放大工具

1. VanceAI Image Enlarger VanceAI Image Enlarger - 最大 8x VanceAI Anime Upscaler - 动漫图片,最大 16x 2. icons8 Upscaler icons8 Upscaler 详细介绍:Icons8 Upscaler Review. 3. Deep Image AI Deep Image AI 4. Waifu2x Waifu2x 5. Let…

intel realsense计算指定像素真实深度与像素坐标系转相机坐标系

intel realsense深度转真实距离与像素坐标系转相机坐标系 1. 深度转真实距离 1. 1初始化配置 import pyrealsense2 as rs # 相机配置 pipeline rs.pipeline() config rs.config() config.enable_stream(rs.stream.depth, WIDTH, HEIGHT, rs.format.z16, 60) config.enable…

像素密度计算

为解决Android设备碎片化,引入一个概念density,也就是密度.它指的是在一定尺寸的物理屏幕上显示像素的数量,一般使用dpi(dots per inch,每英寸像素数)作为单位. 比如设备分辨率为240x320,屏幕物理尺寸为1.5英寸x2英寸(对角线为2.5), 它的密度可以用分辨率…

图像处理入门:图像的像素级运算

点运算: 代数运算: 加法运算: OpenCV中的加法是一种饱和算法,而python中的numpy是一种模操作。 import cv2 import numpy as npif __name____main__: # image cv2.imread(F:/_photo/1/33.png) # h,wimage.shape # resizecv2.re…

设备像素比(devicePixelRatio)

设备像素比(devicePixelRatio,dpr) 定义 window.devicePixelRatio是设备物理像素和设备独立像素(device-independent pixels,dips)之间的比率。window.devicePixelRatio 物理像素/ 设备独立像素 设备物理像素&…

高精度、矩阵计算器

bigint.h文件&#xff1a; #include<map> #include<vector> #include<cstdio> #include<stack> #include<iomanip> #include<cstring> #include<iostream> #include<algorithm>using namespace std;const int BASE_W 8; con…

SLIC超像素算法

文章目录 一、前言二、现有的超像素算法2.1 基于图的算法2.2 基于梯度上升的方法 三、SLIC超像素3.1 算法详解3.2 距离测量3.3 后处理3.4 时间复杂度 四、Python-OpenCV示例 一、前言 官网&#xff1a;https://www.epfl.ch/labs/ivrl/superpixels/ 超像素是把一张图片中具有相…