diff --git a/水稻叶片病害分类/大作业/svm.ipynb b/水稻叶片病害分类/大作业/svm.ipynb new file mode 100644 index 0000000..379940c --- /dev/null +++ b/水稻叶片病害分类/大作业/svm.ipynb @@ -0,0 +1,157 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.87 0.79 0.83 52\n", + " 1 0.68 0.78 0.72 49\n", + " 2 0.68 0.65 0.67 43\n", + "\n", + " accuracy 0.74 144\n", + " macro avg 0.74 0.74 0.74 144\n", + "weighted avg 0.75 0.74 0.74 144\n", + "\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "Author:XiaoMa\n", + "date:2021/12/14\n", + "\"\"\"\n", + "#调用第三方库\n", + "import os\n", + "import cv2\n", + "import numpy as np\n", + "import seaborn as sns\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import confusion_matrix, classification_report\n", + "\n", + "path=[]\n", + "data=[]\n", + "label=[]\n", + "path.append('3-class-riceleafdisease/Bacterial leaf blight')\n", + "path.append('3-class-riceleafdisease/Brown spot')\n", + "path.append('3-class-riceleafdisease/Leaf smut')\n", + "for i in range(3):\n", + " img_dir = sorted(os.listdir(path[i]))\n", + " for file in img_dir:\n", + " img = cv2.imread(os.path.join(path[i], file))\n", + " if img.shape[0] > img.shape[1]:\n", + " img = np.rot90(img).copy()\n", + " data.append(cv2.resize(img, (256, 256)))\n", + " label.append(i)\n", + "data_train, data_val, label_train, label_val = train_test_split(data, label, test_size=0.3)\n", + "\n", + "\n", + "# 第二步 图像读取及转换为像素直方图\n", + "#训练集\n", + "XX_train = []\n", + "for i in data_train:\n", + " #读取图像\n", + "\n", + "\n", + " #计算图像直方图并存储至X数组\n", + " hist = cv2.calcHist([i], [0, 1], None, [256, 256], [0.0, 255.0, 0.0, 255.0])\n", + "\n", + " XX_train.append(((hist/255).flatten()))\n", + "\n", + "#测试集\n", + "XX_test = []\n", + "for i in data_val:\n", + " #读取图像\n", + " #print i\n", + "\n", + " #计算图像直方图并存储至X数组\n", + " hist = cv2.calcHist([i], [0, 1], None, [256, 256], [0.0, 255.0, 0.0, 255.0])\n", + " XX_test.append(((hist/255).flatten()))\n", + "\n", + "\n", + "from sklearn import svm\n", + "clc=svm.SVC()\n", + "clc.fit(XX_train,label_train)\n", + "labelpre=clc.predict(XX_test)\n", + "print(classification_report(label_val,labelpre))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGdCAYAAACPX3D5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABI9klEQVR4nO3dd1gU1xoG8HcBWbBhaCsizY5ixYbGnpCgMZZEiUasRDE2JDZEjRIVWxSjomInRiV2E1uIFSUmitg7XVikqKCoS9v7BzerO4BhzZJF5/3dZ57n7pkzZ84g2f34vjOzEqVSqQQRERGJlp6uJ0BERES6xWCAiIhI5BgMEBERiRyDASIiIpFjMEBERCRyDAaIiIhEjsEAERGRyDEYICIiEjkGA0RERCJnoOsJ/C03PUbXU6ByxL5uT11PgcoRG2MLXU+ByplzySfLdHxtfiZVMK+ltbHKSrkJBoiIiMqNgnxdz+A/xTIBERGRyDEzQEREJKQs0PUM/lMMBoiIiIQKGAwQERGJmlJkmQGuGSAiIhI5ZgaIiIiEWCYgIiISOZYJiIiISEyYGSAiIhIS2UOHGAwQEREJsUxAREREYsLMABERkRDvJiAiIhI3PnSIiIiIRIWZASIiIiGWCYiIiEROZGUCBgNERERCInvOANcMEBERiRwzA0REREIsExAREYmcyBYQskxAREQkcswMEBERCbFMQEREJHIsExAREZGYMDNAREQkoFSK6zkDDAaIiIiERLZmgGUCIiIikWNmgIiISEhkCwgZDBAREQmJrEzAYICIiEiIX1REREREYsLMABERkRDLBERERCInsgWELBMQERGJHDMDREREQiwTEBERiRzLBERERKQrQUFBcHBwgJGREZydnREeHl5i36FDh0IikRTZGjVqpNE5GQwQEREJFRRob9NAaGgovL294efnh6ioKHTo0AFubm5ISEgotv/y5cshl8tVW2JiIkxNTdGvXz+NzstggIiISECpzNfapomlS5dixIgR8PT0hKOjIwIDA2FjY4PVq1cX29/ExATVq1dXbRcuXMCjR48wbNgwjc7LYICIiKgMKRQKZGVlqW0KhaJIv5ycHERGRsLV1VWt3dXVFREREaU614YNG/DBBx/Azs5OozkyGCAiIhLSYpkgICAAJiYmaltAQECRU6anpyM/Px8ymUytXSaTISUl5R+n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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cf_ac=confusion_matrix(label_val,labelpre)\n", + "sum_true = np.expand_dims(np.sum(cf_ac, axis=1), axis=1)\n", + "precision_matrix = cf_ac / sum_true\n", + "sns.heatmap(precision_matrix,annot=True,fmt='.2%')" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "#第一类和第二类分类较好\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file