- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我留意这个例子:http://scikit-learn.org/stable/auto_examples/plot_digits_classification.html#example-plot-digits-classification-pyscikit-learn python 库中的手写数字。
我想准备一个 3d 数组 (N * a* b),其中 N 是我的图像编号 (75),a* b 是图像的矩阵(如示例中的 8x8 形状)。我的问题是:我为每个图像都有不同形状的标志:(202, 230),(250, 322)..然后给我此错误:ValueError:此代码中除 d_0 之外的数组维度必须一致:
#here there is the error:
grigiume = np.dstack(listagrigie)
print(grigiume.shape)
grigiume=np.rollaxis(grigiume,-1)
print(grigiume.shape)
有一种方法可以将所有图像调整为标准尺寸(即 200x200),或者有一种方法可以使用矩阵(a,b)创建 3d 数组,其中 a != 来自 b 并且不会在这段代码中给我错误:
data = digits.images.reshape((n_samples, -1))
classifier.fit(data[:n_samples / 2], digits.target[:n_samples / 2])
我的代码:
import os
import glob
import numpy as np
from numpy import array
listagrigie = []
path = 'resize2/'
for infile in glob.glob( os.path.join(path, '*.jpg') ):
print("current file is: " + infile )
colorato = cv2.imread(infile)
grigiscala = cv2.cvtColor(colorato,cv2.COLOR_BGR2GRAY)
listagrigie.append(grigiscala)
print(len(listagrigie))
#here there is the error:
grigiume = np.dstack(listagrigie)
print(grigiume.shape)
grigiume=np.rollaxis(grigiume,-1)
print(grigiume.shape)
#last step
n_samples = len(digits.images)
data = digits.images.reshape((n_samples, -1))
# Create a classifier: a support vector classifier
classifier = svm.SVC(gamma=0.001)
# We learn the digits on the first half of the digits
classifier.fit(data[:n_samples / 2], digits.target[:n_samples / 2])
# Now predict the value of the digit on the second half:
expected = digits.target[n_samples / 2:]
predicted = classifier.predict(data[n_samples / 2:])
print "Classification report for classifier %s:\n%s\n" % (
classifier, metrics.classification_report(expected, predicted))
print "Confusion matrix:\n%s" % metrics.confusion_matrix(expected, predicted)
for index, (image, prediction) in enumerate(
zip(digits.images[n_samples / 2:], predicted)[:4]):
pl.subplot(2, 4, index + 5)
pl.axis('off')
pl.imshow(image, cmap=pl.cm.gray_r, interpolation='nearest')
pl.title('Prediction: %i' % prediction)
pl.show()
最佳答案
您必须将所有图像调整为固定尺寸。例如使用 PIL 的 Image
类或 Pillow :
from PIL import Image
image = Image.open("/path/to/input_image.jpeg")
image.thumbnail((200, 200), Image.ANTIALIAS)
image.save("/path/to/output_image.jpeg")
编辑:以上方法不起作用,请尝试调整大小
:
from PIL import Image
image = Image.open("/path/to/input_image.jpeg")
image = image.resize((200, 200), Image.ANTIALIAS)
image.save("/path/to/output_image.jpeg")
编辑 2:可能有一种方法可以保留宽高比并用黑色像素填充其余部分,但我不知道如何在一些 PIL 调用中执行此操作。您可以使用 PIL.Image.thumbnail 并使用 numpy 进行填充。
关于multidimensional-array - 符号识别,例如 scikit-learn 中的手写数字示例(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973952/
Perl6 Twitter 模块提供了一个多维变量,其中包含来自搜索查询的推文。这段代码: %tweets[0].say; %tweets[0].say; 打印: es Fri May 04 13:5
只是好奇这是否是在D中初始化动态多维数组的最佳实践。他们的语言引用中有关于数组的部分,但是我不确定它是否超出了我要完成的工作。 class Map { Tile[][] tiles;
我在 golang 中为二维数组使用以下简单代码,其中 APPEND 函数导致重复值而不是追加。 package main import "fmt" func main() { var n i
我刚刚构建了我的第一个 LED 立方体,想稍微扩展一下测试代码。为了寻址我的 3x3x3 立方体的每个 LED,我想使用相应的三维数组,但我在初始化时遇到了错误。 这是我做的: int cube_ma
我需要求解一个线性方程组 Lx=b,其中 x 始终是一个向量(3x1 数组),L 是一个 Nx3 数组,而 b 是一个 Nx1 向量。 N 通常在 4 到 10 之类的范围内。我使用解决这个问题没有问
我有几个问题: 1、isoMDS和cmdscale有什么区别? 2. 我可以使用非对称矩阵吗? 3. 有没有办法确定最佳维度数(结果)? 最佳答案 MDS 方法之一是 distance scaling
我目前正在学习数据库类(class)。之前在看一些关系型数据库的视频,在做研究的时候,碰巧遇到了这个多维索引的话题。出于好奇,我试着读了一点,但我并不完全理解它在说什么,因为它似乎是一个非常高级的话题
这有点复杂;我欢迎就如何提高问题的清晰度提出任何意见。 好的,假设我有一个数组: real, allocatable :: A(:,:,:) 我想在使用它之前分配它。第三维的大小是否可能取决于第二维的
我有一个动态的 3d 数字数组,目前我正在像在 C 中那样做: for (auto i = 0; i < size; i++) { for (auto j = 0; j < size; j++
我最初有一个空矩阵: m = Matrix(0, 3) 和我要添加的行: v = [2,3] 我尝试这样做: [m v] 但我得到一个错误 ERROR: ArgumentError: number
我想知道从文件中读取的几个矩阵的维数。我已经编写了代码来计算矩阵的行数和元素总数,因此知道列数,将元素总数除以行数。 program matrix implicit none inte
假设我有一个多维数组: logic [7:0] mda [7:0]; 我现在要做的是将 mda[7:4] 分配给输出端口,即定义如下: output [31:0] odata; 当然,我可以使用连接来
想象一个菱形等距图,它基本上是一个以 (x,y) 坐标和顶部单元格为原点的二维数组,如单元格中所标记: 我想按以下顺序从后到前遍历这些单元格: 通过未知的同侧 map 以这种方式循环的算法是什么? 预
我无法弄清楚如何在矩阵中的矩阵中获取矩阵的长度(嵌套深度为 3)。所以简而言之,代码所做的是......看看发布者是否已经在数组中,然后它要么在数组中添加一个新列,其中包含一个新的发布者和相应的系统,
我是 Java8 的新手,无法使用流将一个数组映射到另一个二维数组。 我有一个二维数组,它是一种模式: boolean[][] pattern = { {true, true,
m = [] 初始化一个维度为1的空数组。我想初始化一个维度为2的空数组(稍后将在其上附加值。这可能吗? 最佳答案 尝试: m = reshape([],0,2) 要么, m = Array{Floa
如何在Cuda的设备内存中分配和传输2D阵列(与主机之间)? 最佳答案 我找到了解决该问题的方法。我不必弄平阵列。 内置的cudaMallocPitch()功能可以完成这项工作。我可以使用cudaMe
我指的是ndarray crate 以及assert_approx_eq。 我的问题:assert_approx_eq等是否存在类似ndarray::Array2的东西? 目前我正在做: for it
我试图通过逐行拆分顶部和底部行来解决leetcode上的螺旋顺序问题,但我遇到了我无法理解的借位检查器问题。这是产生编译错误的最小示例: pub fn f(mut matrix: &mut [Vec]
我想执行一个循环操作,该操作将执行以下操作(操作必须逐个元素地进行)。 let mut spec = array![] // matrix mxn let exponencial = array![]
我是一名优秀的程序员,十分优秀!