用Python实现OpenCV中的imageData函数

2024-09-27 09:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用OpenCV和Python对图像进行一些转换。我首先用cvLoadImage函数读取图像,然后用imageData函数得到图像数据。在

img = highgui.cvLoadImage("x.png",1)
data = img.imageData

问题是,imageData函数返回一个字符串数据,当我试图对图像数据进行一些计算时,它给了我错误,因为在Python中不允许对字符串进行减法。在

我以一个C代码为例,下面的计算非常有效:

^{pr2}$

但在Python中,正如我所说,我不能这样做。有什么线索吗?关于这个语句,Python和C的区别是什么?如何在Python中应用这种计算?在


Tags: 数据函数字符串代码图像imgdatapng
3条回答

如果您确定作为字符串得到的数据实际上是一个整数,那么可以将其转换为int

data = int(img.imageData)

http://docs.python.org/library/functions.html#int

然而,这可能不是实现目标的正确方法。你看过内置库函数的例子了吗?在

http://opencv.willowgarage.com/documentation/python/operations_on_arrays.html

正如您所说,imageData属性返回一个包含“原始图像数据”的二进制字符串(不过,我不记得是什么格式的)。相反,您应该通过索引到img对象来访问图像数据:

>>> img = cv.CreateImage((10, 10), 8, 1)
>>> img[0, 0]
0.0
>>> img[0, 3] = 1.3
>>>

相关问题 更多 >

    热门问题