1. 程式人生 > >python 圖像歸一化作業代碼代編程代寫圖python作業

python 圖像歸一化作業代碼代編程代寫圖python作業

一個 return clas contents eth AR ips port cto

python 圖像歸一化作業代碼代編程代寫圖python作業
from PIL import Image
import os
import sys
import numpy as np
import time
from sklearn import svm


# 獲取指定路徑下的所有 .png 文件
def get_file_list(path):
return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(".png")]


# 解析出 .png 圖件文件的名稱
def get_img_name_str(imgPath):
return imgPath.split(os.path.sep)[-1]


# 將 20px * 20px 的圖像數據轉換成 1*400 的 numpy 向量
# 參數:imgFile--圖像名 如:0_1.png
# 返回:1*400 的 numpy 向量
def img2vector(imgFile):
#print("in img2vector func--para:{}".format(imgFile))
img = Image.open(imgFile).convert(‘L‘)
img_arr = np.array(img, ‘i‘) # 20px * 20px 灰度圖像
img_normalization = np.round(img_arr/255) # 對灰度值進行歸一化
img_arr2 = np.reshape(img_normalization, (1,-1)) # 1 * 400 矩陣
return img_arr2

# 讀取一個類別的所有數據並轉換成矩陣
# 參數:
# basePath: 圖像數據所在的基本路徑
# Mnist-image/train/
# Mnist-image/test/
# cla:類別名稱
# 0,1,2,...,9
# 返回:某一類別的所有數據----[樣本數量*(圖像寬x圖像高)] 矩陣
def read_and_convert(imgFileList):
dataLabel = [] # 存放類標簽
dataNum = len(imgFileList)
dataMat = np.zeros((dataNum, 400)) # dataNum * 400 的矩陣
for i in range(dataNum):
imgNameStr = imgFileList[i]
imgName = get_img_name_str(imgNameStr) # 得到 數字_實例編號.png
#print("imgName: {}".format(imgName))
classTag = imgName.split(".")[0].split("_")[0] # 得到 類標簽(數字)
#print("classTag: {}".format(classTag))
dataLabel.append(classTag)
dataMat[i,:] = img2vector(imgNameStr)
return dataMat, dataLabel


# 讀取訓練數據
def read_all_data():
cName = [‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘]
train_data_path = "Mnist-image\\train\\0"
flist = get_file_list(train_data_path)
dataMat, dataLabel = read_and_convert(flist)
for c in cName:
train_data_path_ = "Mnist-image\\train\\" + c
flist_ = get_file_list(train_data_path_)
dataMat_, dataLabel_ = read_and_convert(flist_)
dataMat = np.concatenate((dataMat, dataMat_), axis=0)
dataLabel = np.concatenate((dataLabel, dataLabel_), axis=0)
#print(dataMat.shape)
#print(len(dataLabel))
return dataMat, dataLabel


# create model
def create_svm(dataMat, dataLabel, decision=‘ovr‘):
clf = svm.SVC(decision_function_shape=decision)
clf.fit(dataMat, dataLabel)
return clf


#clf = svm.SVC(decision_function_shape=‘ovr‘)
st = time.clock()
clf = create_svm(dataMat, dataLabel, decision=‘ovr‘)
et = time.clock()
print("Training spent {:.4f}s.".format((et-st)))


# 對10個數字進行分類測試
def main():
tbasePath = "Mnist-image\\test\\"
tcName = [‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘]
tst = time.clock()
allErrCount = 0
allErrorRate = 0.0
allScore = 0.0
for tcn in tcName:
testPath = "Mnist-image\\test\\" + tcn
#print("class " + tcn + " path is: {}.".format(testPath))
tflist = get_file_list(testPath)
#tflist
tdataMat, tdataLabel = read_and_convert(tflist)
print("test dataMat shape: {0}, test dataLabel len: {1} ".format(tdataMat.shape, len(tdataLabel)))

#print("test dataLabel: {}".format(len(tdataLabel)))
pre_st = time.clock()
preResult = clf.predict(tdataMat)
pre_et = time.clock()
print("Recognition " + tcn + " spent {:.4f}s.".format((pre_et-pre_st)))
#print("predict result: {}".format(len(preResult)))
errCount = len([x for x in preResult if x!=tcn])
print("errorCount: {}.".format(errCount))
allErrCount += errCount
score_st = time.clock()
score = clf.score(tdataMat, tdataLabel)
score_et = time.clock()
print("computing score spent {:.6f}s.".format(score_et-score_st))
allScore += score
print("score: {:.6f}.".format(score))
print("error rate is {:.6f}.".format((1-score)))
print("---------------------------------------------------------")


tet = time.clock()
print("Testing All class total spent {:.6f}s.".format(tet-tst))
print("All error Count is: {}.".format(allErrCount))
avgAccuracy = allScore/10.0
print("Average accuracy is: {:.6f}.".format(avgAccuracy))
print("Average error rate is: {:.6f}.".format(1-avgScore))
http://www.6daixie.com/contents/3/1375.html

本團隊核心人員組成主要包括矽谷工程師、BAT一線工程師,國內Top5碩士、博士生,精通德英語!我們主要業務範圍是代做編程大作業、課程設計等等。

我們的方向領域:window編程 數值算法 AI人工智能 金融統計 計量分析 大數據 網絡編程 WEB編程 通訊編程 遊戲編程多媒體linux 外掛編程 程序API圖像處理 嵌入式/單片機 數據庫編程 控制臺 進程與線程 網絡安全 匯編語言 硬件編程 軟件設計 工程標準規等。其中代寫代做編程語言或工具包括但不限於以下範圍:

C/C++/C#代寫

Java代寫

IT代寫

Python代寫

輔導編程作業

Matlab代寫

Haskell代寫

Processing代寫

Linux環境搭建

Rust代寫

Data Structure Assginment 數據結構代寫

MIPS代寫

Machine Learning 作業 代寫

Oracle/SQL/PostgreSQL/Pig 數據庫代寫/代做/輔導

Web開發、網站開發、網站作業

ASP.NET網站開發

Finance Insurace Statistics統計、回歸、叠代

Prolog代寫

Computer Computational method代做

因為專業,所以值得信賴。如有需要,請加QQ:99515681 或郵箱:[email protected]

微信:codinghelp

python 圖像歸一化作業代碼代編程代寫圖python作業