2013-02-26 48 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