PyPlot 与 OpenCV 中的工件 imshow

Jor*_*dan 5 python opencv image-processing matplotlib

我有一个numpy数组格式(标准 OpenCV 格式)的灰度图像。正常图像,uint80 到 255 之间的所有值。当我运行时:

import cv2
cv2.imshow('', image)
Run Code Online (Sandbox Code Playgroud)

我得到:

在此处输入图片说明

但是当我运行时:

from matplotlib import pyplot
pyplot.imshow(image, cmap="gray")
pyplot.show()
Run Code Online (Sandbox Code Playgroud)

我得到:

在此处输入图片说明

真正奇怪的是,如果我调整pyplot图像窗口的大小,那些线条伪影的宽度会发生变化。这是怎么回事?我不知道它展示了这些文物。

Jod*_*mak 3

要消除锯齿效应,您可以添加抗锯齿滤波器:

from matplotlib import pyplot
pyplot.imshow(image, cmap="gray", interpolation='hanning')
pyplot.show()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它并不是真正的插值,而是平滑原始数据。