【发布时间】:2020-11-16 23:53:23
【问题描述】:
在为数字识别模型创建 GUI 时,我正在使用 openCV 和 numPy 处理图像。我有点卡在我遇到的这种情况,比如说一个形状为(8,8,3)的图像。我想把它做成 (8,8) 的形状,这样我就可以把它输入到我的分类器模型中,这样它就可以对其进行分类。采取这种方式,我希望第三个维度(即 3)被丢弃。有人可以指导我完成这个吗? 我还为我收到错误的同一场景附加了代码 sn-p:
import cv2 as cv
import numpy as np
img = cv.imread("1.png")
output = cv.imshow("Image: ", img)
cv.waitKey(0)
arr = np.array(img)
new_arr = arr.reshape((8,8)) #trying to reshape it into (8,8) {don't want that ugly looking '3' at last}
print(arr.shape) #shape of original image = (8,8,3)
print(arr)
print(new_arr)
而且,我得到的错误是:
Traceback (most recent call last):
----> new_arr = arr.reshape((8, 8))
ValueError: cannot reshape array of size 192 into shape (8,8)
有谁知道为什么会出现这个错误?任何帮助将非常感激。提前致谢!
【问题讨论】:
-
Reshape 无法更改数组中的元素总数。您正在尝试“丢弃” 2/3 的数据。
3并不“丑”——它是颜色维度。
标签: python arrays numpy opencv image-processing