## 基于OpenCV的图形分析辨认05（补充）

news/2024/4/24 1:15:48/文章来源:https://blog.csdn.net/m0_63369249/article/details/136520929

## 一、前言

pip升级指令：

python -m pip install --upgrade pip

opencv库的清华源下载：

pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple

numpy库的清华源下载：

pip install numpy  -i https://pypi.tuna.tsinghua.edu.cn/simple

matplotlib库的清华源下载：

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

os库的清华源下载：

pip install os  -i https://pypi.tuna.tsinghua.edu.cn/simple

## 三、实验过程

使用SVM检验识别的准确率（MATLAB软件）：

``````%% I. 清空环境变量
clc;clear ;close all%% II. 导入数据
% 选择需要的训练文件和测试文件
% data_train = importdata('D:\Image\GC_LBP_train.txt');
% data_test = importdata('D:\Image\GC_LBP_test.txt');
% data_train = importdata('D:\Image\GC_LDP_train.txt');
% data_test = importdata('D:\Image\GC_LDP_test.txt');
% data_train = importdata('D:\Image\LC_LBP_train.txt');
% data_test = importdata('D:\Image\LC_LBP_test.txt');
% data_train = importdata('D:\Image\LC_LBP_train.txt');
% data_test = importdata('D:\Image\LC_LBP_test.txt');
train_data = [];
for i = 1:322data1 = data_train{i, 1};data1_1 = data1(11:end-1);data_num = str2num(data1_1);train_data = [train_data;data_num];
end
AA = repmat(1:46,7);
AA = AA(1:322)';
train_data(:,257) = AA;
%% 读取测试文件
test_data = [];
for i = 1:138data2 = data_test{i, 1};data2_1 = data2(11: end-1);data_num_2 = str2num(data2_1);test_data = [test_data; data_num_2];
end
BB = repmat(1:46,3);
BB = BB(1:138)';
test_data(:,257) = BB;%%
% 训练集
train_matrix = train_data(:,(1:256));%训练集特征
train_label = train_data(:,257);%训练集标签%%
% 测试集
test_matrix = test_data(:,(1:256));%测试集特征
test_label = test_data(:,257);%测试集特征%% III. 数据归一化
[Train_matrix,PS] = mapminmax(train_matrix',0,1);%归一化到-1至1之间
Train_matrix = Train_matrix';
Test_matrix = mapminmax('apply',test_matrix',PS);
Test_matrix = Test_matrix';%% IV. SVM创建/训练(RBF核函数)
%%
% 寻找最佳c/g参数——交叉验证方法
[c,g] = meshgrid(-10:0.2:10,-10:0.2:10);
[m,n] = size(c);
cg = zeros(m,n);
eps = 10^(-4);
v = 5;
bestc = 1;
bestg = 0.1;
bestacc = 0;
%%
for i = 1:mfor j = 1:ncmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j))];%Train_matrix矩阵的行列需要转至 -c损失函数、惩罚因子cg(i,j) = svmtrain(train_label,Train_matrix,cmd);     if cg(i,j) > bestaccbestacc = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);end        if abs( cg(i,j)-bestacc )<=eps && bestc > 2^c(i,j) bestacc = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);end               end
end
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg)];%%
% 创建/训练SVM模型
model = svmtrain(train_label,Train_matrix,cmd);%% V. SVM仿真测试
[predict_label_1,accuracy_1,decision_values1] = svmpredict(train_label,Train_matrix,model);
[predict_label_2,accuracy_2,decision_values2] = svmpredict(test_label,Test_matrix,model);
result_1 = [train_label predict_label_1];
result_2 = [test_label predict_label_2];%% VI. 绘图
figure
plot(1:length(test_label),test_label,'r-*')
hold on
plot(1:length(test_label),predict_label_2,'b:o')
grid on
legend('真实类别','预测类别')
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集SVM预测结果对比(RBF核函数)';['accuracy = ' num2str(accuracy_2(1)) '%']};
title(string)``````

### Ubuntu20.04安装并配置vscode

Ubuntu20.04安装并配置vscode vscode安装miniconda安装创建虚拟python3.8环境pytorch和匹配的cuda安装 vscode安装 VSCode可以通过 Snapcraft 商店或者微软源仓库中的一个 deb 软件包来安装。 我们这里选用安装VSCode snap版&#xff0c;打开你的终端(CtrlAltT)并且运行下面的…

### 蓝桥杯练习题——差分

1.空调 思路 1.区间同时加减 1&#xff0c;可以转换成一个差分数组两个端点的操作 2.用 p 减去 t 数组&#xff0c;得到要消除的数组 a&#xff0c;对 a 求差分数组 3.差分数组一正一负为一个操作&#xff0c;因为是把这个原数组区间加上了 1&#xff0c;单独的正负为一个操作…

### Go程序是如何编译并运行起来的（图文详解）

Go程序是如何编译的 从hello RdrB1te开始 package main import "fmt" func main() { fmt.Println("hello RdrB1te") }不实际编译它&#xff0c;只输出它的编译过程&#xff1a; go build -n简单的编译过程分析&#xff1a; 上面的过程确认了两个…

### Python Module level import not at top of file (E402)

Python Module level import not at top of file 引言正文 引言 这里给大家简单介绍一下当我们使用 Pycharm 编译器时遇到的 Python Module level import not at top of file 提醒。 正文 请看下图&#xff1a; 这时就会提示我们这个信息&#xff0c;并且 import 下面会出…