我试图在我的Jupyter笔记本上显示几张图片。但是,像素非常粗糙,如下所示.
原始图像的像素清晰。我该如何改善这个问题?这是对图片是狗还是猫进行分类的特定过程。我在同一目录下的文件夹中有许多狗和猫的照片,只是从那里拿走它们。图片是我刚尝试使用matplotlib在Jupyter笔记本上显示的。先感谢您。
要强制matplotlib内联图像的分辨率:
import matplotlib as plt
dpi = 300 # Recommended to set between 150-300 for quality image preview
plt.rcParams['figure.dpi'] = dpi
我认为它默认使用80 dpi左右的非常低的设置。
仅仅因为您试图在屏幕上显示400像素左右的64像素大图像,图像质量似乎在示例图片中降级。因此,每个原始像素包括屏幕上的若干像素。
如果目的是简单地在屏幕上以原始大小显示图像,那么您似乎根本不想使用matplotlib。
%matplotlib inline
import numpy as np
from IPython import display
from PIL import Image
a = np.random.rand(64,64,3)
b = np.random.rand(64,64,3)
c = (np.concatenate((a,b), axis=1)*255).astype(np.uint8)
display.display(Image.fromarray(c))
要使用matplotlib获得类似的结果,您需要裁剪轴周围的边距,并确保图形大小与要显示的数组的大小完全相同。
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
a = np.random.rand(64,64,3)
b = np.random.rand(64,64,3)
c = np.concatenate((a,b), axis=1)
fig, ax = plt.subplots(figsize=(c.shape[1]/100.,c.shape[0]/100.), dpi=100)
fig.subplots_adjust(0,0,1,1)
ax.axis("off")
_ = ax.imshow(c)