添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
def getImageVar ( imgPath ) : image = cv2 . imread ( imgPath ) img2gray = cv2 . cvtColor ( image , cv2 . COLOR_BGR2GRAY ) imageVar = cv2 . Laplacian ( img2gray , cv2 . CV_64F ) . var ( ) return imageVar imageVar = getImageVar ( "tooth/15.jpg" ) print ( imageVar )

2.亮度检测:

  • 计算图片在灰度图上的均值和方差,当存在亮度异常时,均值会偏离均值点(可以假设为128),方差也会偏小;通过计算灰度图的均值和方差,就可评估图像是否存在过曝光或曝光不足。
import cv2
import numpy as np
img = cv2.imread('1.jpg')
# 把图片转换为单通道的灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 获取形状以及长宽
img_shape = gray_img.shape
height, width = img_shape[0], img_shape[1]
size = gray_img.size
# 灰度图的直方图
hist = cv2.calcHist([gray_img], [0], None, [256], [0, 256])
# 计算灰度图像素点偏离均值(128)程序
a = 0
ma = 0
#np.full 构造一个数组,用指定值填充其元素
reduce_matrix = np.full((height, width), 128)
shift_value = gray_img - reduce_matrix
shift_sum = np.sum(shift_value)
da = shift_sum / size
# 计算偏离128的平均偏差
for i in range(256):
    ma += (abs(i-128-da) * hist[i])
m = abs(ma / size)
# 亮度系数
k = abs(da) / m
print(k)
if k[0] > 1:
    if da > 0:
        print("过亮")
    else:
        print("过暗")
else:
    print("亮度正常")

3.色偏检测:

  • 将RGB图像转变到CIE L a b 空间,其中L 表示图像亮度,a 表示图像红/绿分量,b 表示图像黄/蓝分量。通常存在色偏的图像,在a 和b 分量上的均值会偏离原点很远,方差也会偏小;通过计算图像在a 和b 分量上的均值和方差,就可评估图像是否存在色偏。
import cv2
img = cv2.imread('tooth/10.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
l_channel, a_channel, b_channel = cv2.split(img)
h,w,_ = img.shape
da = a_channel.sum()/(h*w)-128
db = b_channel.sum()/(h*w)-128
histA = [0]*256
histB = [0]*256
for i in range(h):
    for j in range(w):
        ta = a_channel[i][j]
        tb = b_channel[i][j]
        histA[ta] += 1
        histB[tb] += 1
msqA = 0
msqB = 0
for y in range(256):
    msqA += float(abs(y-128-da))*histA[y]/(w*h)
    msqB += float(abs(y - 128 - db)) * histB[y] / (w * h)
import math
result = math.sqrt(da*da+db*db)/math.sqrt(msqA*msqA+msqB*msqB)
print("d/m = %s"%result)

参考链接:清晰度检测: https://blog.csdn.net/qq_42238397/article/details/81745600
亮度检测: https://blog.csdn.net/qq_40790959/article/details/106107574
色偏检测:
https://blog.csdn.net/sparrowwf/article/details/86595162
https://blog.csdn.net/fightingforcv/article/details/52724848

1.清晰度检测:利用拉普拉斯算子计算图片的二阶导数,反映图片的边缘信息,同样事物的图片,清晰度高的,相对应的经过拉普拉斯算子滤波后的图片的方差也就越大。import cv2#利用拉普拉斯def getImageVar(imgPath): image = cv2.imread(imgPath) img2gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) imageVar = cv2.Laplacian(img2gray, cv2.C from tools import calLaplacianVar,overExposeDetect def check_image(img_path, fixedSize, stdTimes = 1): #正常值区间 # distArea
本文主要介绍基于 OpenCV contrib中的quality模块实现图像 质量 评价。图像 质量 评估Image Quality Analysis简称IQA,主要通过数学度量方法来评价图像 质量 的好坏。 本文需要 OpenCV contrib库, OpenCV contrib库的编译安装见: OpenCV _contrib库在windows下编译使用指南 本文所有代码见: OpenCV -Practical-Exercise 文章目录1 OpenCV 中图像 质量 评价算法介绍1.1 相关背景1.2 OpenCV 中图像质
def getImageVar(imgPath): image = cv2.imread(imgPath) img2gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) im...
好的,针对你的问题,我可以提供一些思路和方向,希望能对你有所帮助。 1. 图像预处理:对于车牌识别来说,图像预处理是非常重要的一步。可以采用灰度化、二值化、图像增强等方法,使得图像更加清晰、易于分析。 2. 车牌定位:车牌定位是指在整张图像中找到车牌的位置并进行定位。可以采用基于颜 空间的方法、基于边缘 检测 的方法等。 3. 字符分割:车牌中的字符需要进行分割,以便后续进行识别。可以采用基于垂直投影的方法、基于连通域的方法等。 4. 字符识别:字符识别是整个车牌识别系统的核心部分。可以采用基于模板匹配的方法、基于特征提取的方法、基于深度学习的方法等。 5. 车牌信息整合:最后,将所有识别出的字符信息进行整合,得到最终的车牌信息。可以采用字符串拼接的方法、字典匹配的方法等。 以上是基于 python + Opencv 的车牌识别的一些思路和方向,希望能对你有所帮助。如果有需要,我可以提供更加详细的说明和代码实现。