调整大小而不更改imag的结构

2024-06-16 12:54:27 发布

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

我这里有一个图像(DMM\u a01\u s01\u e01_sdepth.PNG格式,基本上是人类的深度图之类的,我真的不知道细节:():

DMM_a01_s01_e01_sdepth.PNG

它非常小(54x102),所以这里是一个可视化: enter image description here

但当我试图用我自己编写的代码将其调整为20x20时:

from scipy import misc
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
import math
import cv2

im = misc.imread('DMM_a01_s01_e01_sdepth.PNG')

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

if len(im.shape) ==3:
    im = rgb2gray(im) # Convert RGB to grayscale

# Show image
plt.imshow(im, cmap = cm.Greys_r)
plt.show()

# Resize image

boxSize = 20
newImage= misc.imresize(im, (boxSize,boxSize), interp="bicubic")
plt.imshow(newImage, cmap = cm.Greys_r)
plt.show()

,调整大小的图像不再与原始图像相同:

enter image description here

如何调整大小并保持图像的结构?请帮帮我,非常感谢:)


Tags: 图像importpngmatplotlibascmpltmisc
1条回答
网友
1楼 · 发布于 2024-06-16 12:54:27

你所要求的是不可能的。调整图像大小是一种破坏性操作。你有54x102像素(5508像素的数据),你正试图把这个数量的数据放进一个20x20的图像中-那只是400像素!基于你使用的算法,你总是会丢失一些细节、结构等——在本例中是scipy的

相关问题 更多 >