我想在Jupyter笔记本上显示几张照片。但是,像素非常粗糙,如下所示。
原始图像的像素清晰。我该如何改善这个问题? 这是对图片是狗还是猫进行分类的特定过程。我在同一目录下的文件夹中有许多狗和猫的照片,只是从那里拿走它们。图片是我刚尝试使用matplotlib在Jupyter笔记本上显示的。 提前谢谢。
答案 0 :(得分:1)
强制matplotlib内嵌图像的分辨率:
public static bool TestSigning(RSAKeyPair keySet)
{
if (keySet.alg != "RS512")
{
throw new ArgumentException("Only SHA512 is supported.");
}
var n = GetBigInteger(FromBase64Url(keySet.n));
var d = GetBigInteger(FromBase64Url(keySet.d));
var e = GetBigInteger(FromBase64Url(keySet.e));
var rsaParams= RecoverRSAParameters(n, e, d);
RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(512);
rsaProvider.ImportParameters(rsaParams);
var hasher = SHA512.Create();
var testmsg = Encoding.UTF8.GetBytes("TestMsg");
var hash = hasher.ComputeHash(new MemoryStream(testmsg));
var oid = CryptoConfig.MapNameToOID("SHA512");
var signedData = rsaProvider.SignHash(hash, oid);
var isSigned = rsaProvider.VerifyHash(hash, oid, signedData);
return isSigned;
}
我认为它默认使用80 dpi左右的非常低的设置。
答案 1 :(得分:1)
示例图片中的图像质量似乎因为您试图在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)