2013-02-26 70 views
0

我有一個圖像,我打開使用LoadImageM,我得到像素數據使用Get2D放我似乎無法找到任何內置函數來更改像素值。 我試過使用多種東西從RectangleCV_RGB,但沒有成功的結果。更改像素值

回答

5

考慮檢出新版本的opencv庫。

您與

import cv2 

導入並直接返回numpy的陣列。

因此,例如,如果你做

image_array = cv2.imread('image.png') 

那麼你可以訪問並通過簡單的操作image_array改變像素值:

image_array[0,0] = 100 

設置左上像素值100。

根據您的安裝情況,您可能已經有cv2綁定,因此請檢查import cv2是否有效。

否則,只需安裝opencvnumpy,你很好走。

+0

其實我已經有了cv2,因爲我在代碼的開頭使用'import cv2.cv作爲cv'。所以你認爲只用cv2而不用cv是值得的,那是對的嗎?順便說一下,我發現了一個名爲'Set2D'的cv函數,它完全符合我的需求。考慮到其他函數的名稱是'Get2D',這是非常明顯的... – Leo 2013-02-26 22:14:22

+1

是的,這是正確的!使用numpy數組比處理舊的API要容易得多。您可以直接在您的openCV結構上使用所有scipy和numpy函數,而無需將所有內容來回轉換。它要好得多。 – entropiece 2013-02-27 01:32:39