gpt4 book ai didi

python - 尝试使用 CV2 和 numpy 调整图像的大小和形状

转载 作者:行者123 更新时间:2023-12-02 16:09:25 26 4
gpt4 key购买 nike

我有一个图像,我想让它成为适合我的 keras 模型的正确形状。

我想使用 scipy 中的 imread、imresize、imshow,但它们现在似乎已被弃用。

具有我试图模拟的功能的旧代码是:

x = imread('output.png',mode='L')
x = np.invert(x)
x = imresize(x,(28,28))
imshow(x)
x = x.reshape(1,28,28,1)

我的新代码如下:
import numpy as np
from PIL import Image
import cv2

def load_image( infilename ) :
img = Image.open( infilename )
img.load()
data = np.asarray( img, dtype="int32" )
return data

x = load_image("output.png")

x = cv2.resize(x, dsize=(28, 28))
x = x.reshape(1,28,28,1)

当我收到以下错误时,我目前正在尝试使用 cv2 和 numpy 来处理图像:
x = cv2.resize(x, dsize=(28, 28))
cv2.error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\imgproc\src\resize.cpp:3922: error: (-215:Assertion failed) func != 0 in function 'cv::hal::resize'

最佳答案

here是一个类似的问题。看起来 opencv resize 方法不适用于 int32 类型。您可以尝试在调整大小后调用它。

最后cv2.imread(infilename,-1)返回一个 numpy 数组:

import numpy as np
import cv2

def load_image( infilename ) :
data = cv2.imread(infilename,-1)
return data

x = load_image("output.png")

x = cv2.resize(x, dsize=(28, 28))
x = x.astype('int32')
x = x.reshape(1,28,28,1)

关于python - 尝试使用 CV2 和 numpy 调整图像的大小和形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61305042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com