1
我只是測試非常基本的東西有關numpy的ndarray數據結構和matplotlib圖像處理顯示圖像。我使用np.zeros((n,m))函數創建了一個二維數組,其中存儲了我的像素,以便讓事情變得簡單我只是在灰度級中工作,所以我只需要一個值來表示像素。這是我的代碼片段:基礎圖像處理與numpy和matplotlib
import numpy as np
import matplotlib.pyplot as plt
matrix= np.zeros((4,4))
print(matrix)
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
matrix+=128 #increase each pixel value by 128
print(matrix) #print the content of matrix
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
我從這個代碼想到的是,第一個情節將完全黑色的,因爲每一個「像素」的值爲0,這裏沒有任何問題。然後我將像素從0增加到128,所以第二個圖應該是完全灰色的,但仍然是黑色的。就像沒有執行任何操作,但矩陣有效地改變了(從打印功能中檢查)。
於是,我就只修改一些像素「手動」:
matrix[0,0]=255
matrix[0,3]=255
matrix[3,0]=255
matrix[3,3]=255
plt.matshow(matrix, cmap=plt.cm.gray) #plot matrix
,現在4個像素是白色的。 有一些方面,我完全錯過了,我認爲這是相關的numpy和一些關於ndarray的東西,以及如何管理。
有人可以解釋爲什麼會發生這種情況?謝謝