import os
import numpy as np
import matplotlib.pyplot as plt
from openpyxl import Workbook
def find_file(filepath):
os.chdir(filepath)
all_filename=os.listdir()
all_filename_new=[]
for i in all_filename:
if os.path.splitext(i)[1] == '.aof':
all_filename_new.append(i)
return all_filename_new
def SOI(x,y,a,filename):
imgData = np.fromfile(filename, dtype='uint16')
img=imgData.reshape(3072,3072,1)
img_SOI=[]
for i in range(0,a):
for j in range(0,a):
img_SOI.append(img[x+i][y+j])
meanLSB=np.mean(img_SOI)
return meanLSB
def graph(x,all_LSB,title):
fig=plt.figure()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(x,all_LSB)
plt.title(title)
plt.ylabel('平均灰度值')
plt.show()
return
def main():
filepath=input('输入要计算图像的路径:')
X=int(input('输入坐标X:'))
Y=int(input('输入坐标Y:'))
A=int(input('选区长度:'))
title=input('关于什么的计算:')
all_filename_new=find_file(filepath)
all_LSB=[]
j=1
x_t=[]
for i in all_filename_new:
all_LSB.append(SOI(Y,X,A,i))
x_t.append(j)
j+=1
graph(x_t,all_LSB,title)
wb=Workbook()
ws=wb.active
for i in x_t:
ws['A'+str(i)]=i
ws['B'+str(i)]=all_LSB[i-1]
wb.save('result.xlsx')
if __name__ == "__main__":
main()
python图像处理
最新推荐文章于 2022-02-26 13:25:18 发布