对比度计算contrast


import cv2
import numpy as np
import os
import sys
import csv
import time

path = './Tmp' 
if not os.path.exists(path):
    os.mkdir(path)
inputs = './Input-一次只跑一张图'
if not os.path.exists(inputs):
    os.mkdir(inputs)
print('---开始处理,耐心等待,色彩越丰富的图像,花费的时间越多,稍等…………')
df = open('./Tmp/Sum.txt','w+')
filepath = './Input-一次只跑一张图'
pathDir = os.listdir(filepath) 
for allDir in pathDir:
    picpath = r'./Input-一次只跑一张图/' + allDir
    pc = cv2.imdecode(np.fromfile(picpath, dtype=np.uint8), 1)
    pc1 = cv2.imdecode(np.fromfile(picpath, dtype=np.uint8), 0)
    (mean, stddv) =cv2.meanStdDev(pc1)
    weight = np.array([0.114,0.587,0.299])
    Y = pc * weight
    for a1 in Y:
    	for b1 in a1:
    		less_fifty = np.sum(b1,axis = 0)
    		print(less_fifty,file = df)
    df = open('./Tmp/Sum.txt','r+')
    lines = df.readlines()
    pixel_All = 0
    less_fifty = 0
    more_OneHE = 0
    for i in lines:
        data = i.split()
        for j in data:
            FP = float(j)
            if FP <256:
            	pixel_All += 1
            if FP<50:
                less_fifty += 1
                less_fifty_P = less_fifty/pixel_All
            if FP>180:
            	try:
            		more_OneHE += 1
            		more_OneHE_P= more_OneHE/pixel_All
            	except:
            		prit('z1未出结果')
            		continue                    	     
df.close()
f1 = open('./'+time.strftime('%Y%m%d%H%M%S'+'_',time.localtime(time.time()))+'对比度_Result.txt','w+')
print('本次所处理的文件名为:',allDir,file = f1)
print('小于50的总数目:',less_fifty,file = f1)
print('大于180的总数目:',more_OneHE,file = f1)
print('像素总数目:',pixel_All,file = f1)
print('小于50的占比:',less_fifty_P,file = f1)
print('大于180的占比:',more_OneHE_P,file = f1)
print("Gray pixel Mean:",mean[0][0],file = f1)
print('Gray pixel Std :',stddv[0][0],file = f1)
print('Gray pixel Var :',(stddv[0][0])**2,file = f1)
print('================已处理完成,移步result.txt中查看结果================')
paths = './Input-一次只跑一张图'
for i in os.listdir(paths):
	path_file = os.path.join(paths,i)
	if os.path.isfile(path_file):
		os.remove(path_file)
		print('已删除处理完成的图片,请放入一张新图片进行处理……')
原文地址:https://www.cnblogs.com/Tdazheng/p/13745338.html