然后我以这种方式读取一些jpg文件
image = imread('aa.jpg')
结果我得到的数据帧的数字从1到255
我可以这样调整大小:
from cv2 import resize
image = resize(image, (256, 256)
但是后来我对png做同样的思考,结果是不希望的。
image = imread('aa2.png') # array with number within 0-1 range
resize(image, (256,256)) # returns 1 channel image
resize(image, (256,256, 3)) # returns 3 channel image
但是imshow(image)
答案 0 :(得分:1)
我想您的图片或代码有问题。
这里有免费的图片供您尝试:https://pixabay.com/vectors/copyright-free-creative-commons-98566/
也许您对libpng有问题,请检查以下答案:libpng warning: iCCP: known incorrect sRGB profile
检查适用于PNG图像的简单代码。
import cv2 as cv
image = cv.imread("foto.png")
if __name__ == "__main__":
while True:
image = cv.resize(image,(200,200))
cv.imshow("prueba",image)
key = cv.waitKey(10)
if key == 27:
cv.destroyAllWindows()
break
cv.destroyAllWindows()
答案 1 :(得分:1)
cv2.imread
默认在3个通道而不是4个通道中读取图像。传递参数cv.IMREAD_UNCHANGED
来读取PNG文件,然后尝试按以下代码所示调整其大小。
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('Snip20190412_12.png', cv.IMREAD_UNCHANGED)
print(img.shape) #(215, 215, 4)
height, width = img.shape[:2]
res = cv.resize(img,(2*width, 2*height))
print(res.shape)#(430, 430, 4)
plt.imshow(res)