0

我是 Python 和 Opencv 的新手。我正在使用以下代码。

import Image
import ImageChops
im1 = Image.open("img1.png")
im2 = Image.open("img2.png")
diff = ImageChops.difference(im2, im1)

当我这样做时cv.ShowImage,它会要求我转换它。我正在尝试各种转换,但总是有错误。我可以看到图像的唯一方法是执行以下操作。

diff.save("final","JPEG")

还有其他方法可以转换为 IplImage 或 CvMat 吗?

4

2 回答 2

0

cv.SaveImage(diff, cv.LoadImage(diff))可能工作,使用 opencv 功能。

编辑:鉴于下面的评论,我想尝试

cv.SaveImage(diff, cv.LoadImage(diff))
cv.ShowImage('box name', diff)

可能会奏效。

于 2013-06-04T17:59:25.063 回答
0

差异图像包含负像素值,所以我不认为 cv.ShowImage 可以“按原样”显示它。

减法后可能的像素值范围是 -255 到 255。您可能希望首先标准化像素值,通过

新值 = (旧值 + 255)/2

我不在 Python 上使用 OpenCV,所以我无法发布上述代码。

于 2013-06-05T01:34:06.443 回答