Python 从图像中提取数字和字母特征

Python 从图像中提取数字和字母特征,python,opencv,scikit-image,Python,Opencv,Scikit Image,我正在编写一个python程序来对字母和数字进行分类。我已经编写了分类器,并且为我的数据集提供了图像。我真的没有太多的python或图像处理经验。 我的问题是如何用我拥有的图像创建数据集。如何创建类似阵列的形状。我应该为每个图像创建一个numpy数组吗?还是使用颜色直方图? 我可能会将所有图像转换为灰度 我找到了分类猫和狗的链接。它使用两种方法提取图像特征,但我不知道这是否适用于我的情况 有人能给我指点迷津吗?例如,我能把图像的特征提取到一个向量中,这样我就可以把这些数据写到我的“datase

我正在编写一个python程序来对字母和数字进行分类。我已经编写了分类器,并且为我的数据集提供了图像。我真的没有太多的python或图像处理经验。 我的问题是如何用我拥有的图像创建数据集。如何创建类似阵列的形状。我应该为每个图像创建一个numpy数组吗?还是使用颜色直方图? 我可能会将所有图像转换为灰度

我找到了分类猫和狗的链接。它使用两种方法提取图像特征,但我不知道这是否适用于我的情况

有人能给我指点迷津吗?例如,我能把图像的特征提取到一个向量中,这样我就可以把这些数据写到我的“dataset.data”文件中吗

我将使用如下图片:

我甚至考虑过将图像大小调整为32x32,并创建一个0和1的位图来表示图像

有人能给我指点迷津吗?例如,我能把图像的特征提取到一个向量中,这样我就可以把这些数据写到我的“dataset.data”文件中吗


谢谢。

您通常需要创建一个Numpy数组来保存所有训练数据。通常按以下形状排列:

X_train.shape=(N,img.shape[0],img.shape[1])

其中N是集合中的图像数

这样,如果使用单通道(灰度),
X_train[i,:,:]
将保存第i个图像像素的值。请注意,建议规范化这些值,但这取决于您选择的训练模型

下面是一个快速示例,说明如何创建和构建这样的阵列:

import numpy as np
import cv2

X = np.zeros((N, IMG_SIZE[0], IMG_SIZE[1]), dtype=np.float32) 
y = np.zeros((N))
for idx, img_path in enumerate(images_path):
  img = cv2.imread(img_path)
  assert ((img.shape[0], img.shape[1]) == IMG_SIZE)
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  X[idx, :, :] = gray
  y[idx] = # label of this image

# if you wish to normalize:
X = (X/255.0) - 0.5
有很多关于数字分类器的教程,通常以MNIST数据集为例。这里有一个,但你应该继续,谷歌它


如果你想获得更好的结果,你可能想研究神经网络。还有很多教程,这里有一个。

您通常希望创建一个Numpy数组来保存所有训练数据。通常按以下形状排列:

X_train.shape=(N,img.shape[0],img.shape[1])

其中N是集合中的图像数

这样,如果使用单通道(灰度),
X_train[i,:,:]
将保存第i个图像像素的值。请注意,建议规范化这些值,但这取决于您选择的训练模型

下面是一个快速示例,说明如何创建和构建这样的阵列:

import numpy as np
import cv2

X = np.zeros((N, IMG_SIZE[0], IMG_SIZE[1]), dtype=np.float32) 
y = np.zeros((N))
for idx, img_path in enumerate(images_path):
  img = cv2.imread(img_path)
  assert ((img.shape[0], img.shape[1]) == IMG_SIZE)
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  X[idx, :, :] = gray
  y[idx] = # label of this image

# if you wish to normalize:
X = (X/255.0) - 0.5
有很多关于数字分类器的教程,通常以MNIST数据集为例。这里有一个,但你应该继续,谷歌它


如果你想获得更好的结果,你可能想研究神经网络。同样,还有很多教程,这里有一个。

我想你可能正在寻找这个:

Sklearn是一个非常容易学习的机器学习软件包,包含大量教程。
希望有帮助,

我想您可能正在寻找:

Sklearn是一个非常容易学习的机器学习软件包,包含大量教程。 希望有帮助