Task:
用随机森林训练出一个区分好坏图像的模型,计算accurancy
流程:
首先做的是cv2.imread()读入图像,读入的是BGR格式,应该是三个M x N的二维矩阵,分别表示各个像素的R、G、B三个颜色分量(见下图的x_test)。接着转化为灰度图像,灰度数字图像是每个像素只有一个采样颜色的图像,它是一个M x N的二维矩阵。然后由于手头用的是大小不同的图像,还要在进行统一大小。最后就是运用随机森林,得到精确度。
遇到的一些问题:
- 在将训练集送入随机森林时候,报错:
应该是输入的训练集是三维的,所以出现错误。
要想办法把它降维,解决办法就是保持它的第一纬度,另外两个维度进行展平,即
nsamples_test, nx, ny = x_test.shape
x_test = x_test.reshape(nsamples_test, nx*ny)
nsamples_train, nx, ny = x_train.shape
x_train = x_test.reshape(nsamples_train, nx*ny)
变化后如图