我有一個灰度圖像和一個閾值。超過閾值的像素值應標記爲藍色或「+」號。標記灰度圖像中的特定像素值
thresh_img = np.zeros((r,c))
thresh_img[:,:] = img[:,:]
thresh_img[thresh_img > 40] = 0
如何在python中做到這一點?
我有一個灰度圖像和一個閾值。超過閾值的像素值應標記爲藍色或「+」號。標記灰度圖像中的特定像素值
thresh_img = np.zeros((r,c))
thresh_img[:,:] = img[:,:]
thresh_img[thresh_img > 40] = 0
如何在python中做到這一點?
使用boolean indexing來標識值,然後使用numpy.nonzero
或numpy.where
來獲得它們的索引。對於圖像或矩陣,索引可以直接用作位置。然後使用matplotlib.plot(x, y, 'b+')
一種方法是使用PIL庫(http://www.pythonware.com/products/pil/)。 首先,創建一個數組來存儲值。然後你打開圖像並使用for循環,你遍歷它所有的像素。根據像素的顏色,你存儲一個'+'或其他東西(你不指定什麼,所以我認爲它是顏色,可以存儲爲單個數字,因爲灰度具有相似的RG和B值) 。所以,我可能會這樣做:
from PIL import Image
cols = []
im = Image.open("dead_parrot.jpg") #Can be many different formats.
pix = im.load()
w = im.size[0]
h = im.size[1]
for i in range(w):
row = []
for j in range(h):
red = pix[i,j][0]
if red > threshold:
row.append('+')
else:
row.append(str(red))
cols.append(row)
print(cols)
我相信這應該能夠完成這項工作。你可以試試嗎?
它顯示錯誤'numpy.ndarray'對象沒有屬性'加載' –
看代碼:'im = Image.open(「dead_parrot.jpg」)'。即時消息來自一張照片,它不應該與numpy有任何關係 –
你到目前爲止嘗試過什麼?發佈代碼 –
是你真正擁有的嗎?什麼是np?和r和c? –
r,c是圖像的行和列,img是必須被閾值化的圖像,而np是numpy的縮略形式。 –