清晰度检测与增强算法

一、清晰度检测

在无参考图像的质量评价中,图像的清晰度是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰度不高表现出图像的模糊。

1、Brenner 梯度函数

Brenner梯度函数是最简单的梯度评价函数,它只是简单的计算相邻两个像素灰度差的平方.


import cv2 as cv
import numpy as np
import math

def brenner(img):
    '''
    Brenner梯度函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    shape = np.shape(img)
    out = 0
    for y in range(0, shape[0]):
        for x in range(0, shape[1]-2):
            out+=(int(img[x+2,y])-int(img[x,y]))**2
    return out

2、Laplacian梯度函数

对每一个像素点计算该处Laplacian算子的卷积后再逐个像素累加。


G(x,y)是像素点(x,y)处Laplacian算子的卷积

Laplacian算子定义如下


def Laplacian(img):
    '''
    Laplacian梯度函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    return cv.Laplacian(img, cv.CV_64F).var()

3、SMD(灰度差分)函数

对每一个像素邻域两个灰度差相加后再逐个像素累加。


def SMD(img):
    '''
    SMD函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    shape = np.shape(img)
    out = 0
    for y in range(1, shape[0]):
        for x in range(0, shape[1]-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 out

4、SMD2(灰度差分乘积)函数

对每一个像素邻域两个灰度差相乘后再逐个像素累加。


def SMD2(img):
    '''
    SMD2函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    shape = np.shape(img)
    out = 0
    for y in range(0, shape[0]-1):
        for x in range(0, shape[1]-1):
            out+=math.fabs(int(img[x,y])-int(img[x+1,y]))*math.fabs(int(img[x,y]-int(img[x,y+1])))
    return out

5、方差函数

因为清晰聚焦的图像有着比模糊图像更大的灰度差异,可以将方差函数作为评价函数。


μ为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小
def variance(img):
    '''
    variance函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    out = 0
    u = np.mean(img)
    shape = np.shape(img)
    for y in range(0,shape[0]):
        for x in range(0,shape[1]):
            out+=(img[x,y]-u)**2
    return out

6、能量梯度函数

能量梯度函数更适合实时评价图像清晰度


def energy(img):
    '''
    energy函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    shape = np.shape(img)
    out = 0
    for y in range(0, shape[0]-1):
        for x in range(0, shape[1]-1):
            out+=((int(img[x+1,y])-int(img[x,y]))**2)*((int(img[x,y+1]-int(img[x,y])))**2)
    return out

7、Vollath函数

μ为整幅图像的平均灰度值,M和N分别为图像宽和高
def Vollath(img):
    '''
    Vollath函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    shape = np.shape(img)
    u = np.mean(img)
    out = -shape[0]*shape[1]*(u**2)
    for y in range(0, shape[0]):
        for x in range(0, shape[1]-1):
            out+=int(img[x,y])*int(img[x+1,y])
    return out

8、熵函数

基于统计特征的熵函数是衡量图像信息丰富程度的一个重要指标,有信息论可知,一幅图像 f 的信息量是由该图像的信息熵 D(f) 来度量.


Pi 是图像中灰度值为i的像素出现的概率,L为灰度级总数(通常取值256)

根据Shannon信息论,熵最大时信息量最多。将此原理应用到对焦过程,D(f)越大则图像越清晰。熵函数灵敏度不高,依据图像内容不同容易出现与真实情况相反的结果。

def entropy(img):
    '''
    entropy函数
    INPUT -> 二维灰度图像
    OUTPUT -> 图像越清晰越大
    '''
    out = 0
    count = np.shape(img)[0]*np.shape(img)[1]
    p = np.bincount(np.array(img).flatten())
    for i in range(0, len(p)):
        if p[i]!=0:
            out-=p[i]*math.log(p[i]/count)/count
    return out

拓展

二、清晰度增强

增强图像清晰度的技术一般被称为超分辨率技术,常见的有基于临近像素点计算的方法、基于图像成像原理的方法、基于贴片的方法以及基于深度神经网络的方法。
目前效果最好的是基于深度神经网络的方法:
谷歌超分辨率技术RAISR
腾讯超分辨率技术TSR

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容