機器學習第3章第4節 隨機畫素點的繪製

2021-08-08 22:45:29 字數 2029 閱讀 7959

本次教程是使用到了opencv的庫,如果沒有安裝請先根據安裝教程安裝.

opencv庫中,顏色不是rgb ,而是bgr,也就是說,乙個畫素點由[藍色值,綠色值,紅色值]組成.

比如 : 我想讀取a影象(假設a的影象矩陣變數為img_a)第150行第20列處的畫素值,可使用** :img_a[150,20,:]

又如 : 我想讀取詳細的顏色值,**如下:

blue = img_a[150,20,0]

green = img_a[150,20,1]

red = img_a[150,20,2]

隨機生成畫素的原理是首先產生空矩陣,然後確定矩陣的5000個隨機位置,最後將隨機位置處的畫素值設定為隨機數組.

如果我想要顯示影象,其原理是 : 首先使用imread(檔名)讀取影象檔案,生成影象矩陣,然後呼叫imshow()顯示影象,然後呼叫waitkey()等待按鍵,最後呼叫destroyallwindows()銷毀所有視窗,釋放記憶體.

import numpy as np

import cv2

if __name__ == '__main__':

#行數sz1 = 200

#列數 sz2 = 300

print('產生的空影象矩陣為(%s,%s)' % (sz1,sz2))

img = np.zeros((sz1,sz2,3),np.uint8)

pos1 = np.random.randint(200,size = (5000,1)) #行位置隨機數組

pos2 = np.random.randint(300,size = (5000,1)) #列位置隨機數組

#在隨機位置設定畫素點值

for i in range(5000):

img[pos1[i],pos2[i],[0]] = np.random.randint(0,255)

img[pos1[i],pos2[i],[1]] = np.random.randint(0,255)

img[pos1[i],pos2[i],[2]] = np.random.randint(0,255)

#顯示影象

cv2.imshow('preview...',img)

#等待按鍵

cv2.waitkey()

#銷毀視窗

if __name__ == '__main__'這段**的含義是 : 如果這段**是主程式而不是被載入(如import),那麼就執行下面的**.

img = np.zeros((sz1,sz2,3),np.uint8)這段**的含義是使用numpy的庫,呼叫zeros函式產生大小為[(sz1,sz2,3),np.uint8]的矩陣,裡面都是用0來填充的.

如果**是np.zeros((3,4,5),np.uint8),那麼產生的型別是,裡面的內容如下圖

pos1 = np.random.randint(200,size = (5000,1)) #行位置隨機數組這段**產生的型別是,長度為5000,結果如下(請注意!數字是隨機的):

機器學習第5章第3節 LMS的學習率退火演算法

模擬退火演算法 於固體退火原理,退火就是講材料加熱後再經過特定速率冷卻,目的是增大晶粒的體積,並且減少晶格的缺陷。材料中的原子原來會停留在使內能有區域性最小值的位置,加熱使能量變大,原子會離開原來的位置,而隨機在其他位置中移動。退火冷卻時速度較慢,徐徐冷卻時粒子漸趨有序,原子有可能找到內能比原先更低...

《機器學習》西瓜書習題 第 4 章

試證明對於不含衝突資料 即特徵向量完全相同但標記不同 的訓練集,必存在與訓練集一致 即訓練誤差為 0 的決策樹.既然每個標記不同的資料特徵向量都不同,只要樹的每一條 從根解點到乙個葉節點算一條 枝幹代表一種向量,這個決策樹就與訓練集一致.試析使用 最小訓練誤差 作為決策樹劃分選擇準則的缺陷.4.1 ...

《機器學習》(周志華) 第3章 線性模型

一 線性回歸 線性回歸沒什麼好說的,它的思想是採用對輸入樣例各個特徵進行線性加權的方式得到 的輸出,並將 的輸出和真實值的均方誤差最小化。說白了如果輸入樣例只有乙個特徵,那這個過程就是用一條直線去擬合平面直角座標系上的點 如果有兩個特徵,表現在平面直角座標系上就是用一條直線將用不同標記 如xx和oo...