BP算法图像分类

版权声明:本文为博主原创文章,转载请注明作者和出处。https://blog.csdn.net/xq920831/article/details/85259829

原文地址:https://blog.csdn.net/baidu_28342107/article/details/83307633

根据原文稍作改动

读取图片处改动

代码如下

cate = [path+x for x in os.listdir(path) if os.path.isdir(path+x)]
cate1 = [path1+x for x in os.listdir(path1) if os.path.isdir(path1+x)]
for idx,folder in enumerate(cate):
    for im in glob.glob(folder+'/*.jpg'):
        #打开一张图片并灰度化
        Images = cv2.imread(im)
        image=cv2.resize(Images,(256,256),interpolation=cv2.INTER_CUBIC)
        hist = cv2.calcHist([image], [0,1], None, [256,256], [0.0,255.0,0.0,255.0])
        X_train.append((hist/255).flatten())
        y_train.append(idx)
X_train = np.array(X_train)
y_train = np.array(y_train)

for idx,folder in enumerate(cate1):
    for im in glob.glob(folder+'/*.jpg'):
        #打开一张图片并灰度化
        Images = cv2.imread(im)
        image=cv2.resize(Images,(256,256),interpolation=cv2.INTER_CUBIC)
        hist = cv2.calcHist([image], [0,1], None, [256,256], [0.0,255.0,0.0,255.0])
        X_test.append((hist/255).flatten())
        y_test.append(idx)
X_test = np.array(X_test)
y_test = np.array(y_test)

最后的BP训练需要改成自己的类别数量

clf0 = BP([X_train.shape[1],6],6).fit(X_train,y_train,epochs=100)

猜你喜欢

转载自blog.csdn.net/xq920831/article/details/85259829