如何处理不同的图像尺寸

2024-05-23 21:07:40 发布

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

我正在图像上寻找外部身体点,但当我保存它们时,它们的大小不同,这就产生了问题。你知道吗

  1. 我原来的形象是一个人。(1.8Mb)

  2. 我创建了一个面具的人检测外部身体部位从原始图像,并保存它。(400kb)

  3. 从蒙版中,我获得了身体的外部点,并将它们绘制在原始图像上,但由于原始图像和蒙版图像的大小不同,它们没有对齐。你知道吗

    为了保存没有轴和完整大小的图像,以便它可以与原始图像匹配,我通过以下方法保存它们。保存后,它们看起来完全相同,但由于大小不同,点没有对齐。你知道吗

      plt.axis('off')
      fig.axes.get_xaxis().set_visible(False)
      fig.axes.get_yaxis().set_visible(False)
      plt.savefig('kmask.jpg',bbox_inches='tight',pad_inches = 0,dpi=1500)
    

在原始图像上绘制点时的结果:

Result when I plot points on original image

如何处理这样的问题?你知道吗


Tags: 图像falsegetfig绘制pltmbset
1条回答
网友
1楼 · 发布于 2024-05-23 21:07:40

从我可以告诉你的是,保存在一个不同的大小比原来的形象面具。你知道吗

解决这个问题的一种方法是首先计算原始图像的分辨率。如果您不知道,您可以随时检查:

img = plt.imread('body_image.jpg')
print(img.shape)
# The first two numbers correspond to the height and width of the image in pixels

问题是matplotlib处理图像分辨率的方式不同。相反,它需要图形大小(以英寸为单位)和DPI(或每英寸有多少像素)。一种方法是计算所需的值,并相应地保存图像。你知道吗

图像高度(像素)=高度(英寸)*dpi

然后用这两个数字来保存面具。你知道吗

f = plt.figure(figsize=(height_in_inches, width_in_inches))
plt.axis('off')
plt.savefig('kmask.jpg', bbox_inches='tight', pad_inches=0, dpi=dpi)

如果不起作用,请尝试用matplotlib保存原始图像。这将确保它们具有相同的尺寸。你知道吗

相关问题 更多 >