%--------------------------------------------------------------------------
% 基于贝叶斯判别的手写体数字识别
%--------------------------------------------------------------------------
%***********************读取训练样本图片,并进行预处理***********************
% 利用uigetfile函数交互式选取训练样本图片
geshi = {'*.jpg','JPEG image (*.jpg)';...
'*.bmp','Bitmap image (*.bmp)';...
'*.*','All Files (*.*)'};
[FileName FilePath] = uigetfile(geshi,'导入外部数据',...
'*.jpg','MultiSelect','on');
% 如果选择了图片文件,生成图片文件的完整路径,否则退出程序,不再运行后面命令
if ~isequal([FileName,FilePath],[0,0]);
FileFullName = strcat(FilePath,FileName);
else
return;
end
n = length(FileFullName); % 选择的图片文件个数
% 设置I、BW、training和group的初值
I = zeros(50);
BW = zeros(16);
training = zeros(1,256);
group = [];
% 通过循环对每一个图片进行标准化处理,并生成训练样本数据矩阵training和分组向量group
for i = 1:n
I = imread(FileFullName{i}); % 读入一幅图片
I = 255-I; % 图像反色处理
I = im2bw(I,0.4); % 设定阈值,把反色后图像转成二值图像
[y,x] = find(I == 1); % 查找数字上像素点的行标y和列标x
BW = I(min(y):max(y),min(x):max(x)); % 截取包含数字的最大区域图像
% 将截取的包含数字的最大区域图像转成16×16的标准化图像
BW = imresize(BW,[16, 16]);
% 将标准化图像按列拉长,生成50×256的训练样本矩阵training
training(i,:) = double(BW(:)');
% 将图片文件名字符串分成三部分:文件路径、不带扩展名的文件名和扩展名字符串
[pathstr,namestr,ext] = fileparts(FileName{i});
% 读取不带扩展名的文件名字符串的第4个字符,得到该图片对应的数字,即该图片所在的组
group = [group;str2num(namestr(4))];
end
%***************************创建朴素贝叶斯分类器对象*************************
% 创建朴素贝叶斯分类器对象ObjBayes
ObjBayes = NaiveBayes.fit(training,group,'Distribution','mn')
%*****************************对训练样本图片进行判别*************************
% 利用所创建的朴素贝叶斯分类器对象ObjBayes,对训练样本图片进行判别
pre0 = ObjBayes.predict(training);
isequal(pre0, group) % 判断判别结果pre0与分组向量group是否相等
%***********************读取检验样本图片,并进行预处理***********************
% 利用uigetfile函数交互式选取检验样本图片
geshi = {'*.jpg','JPEG image (*.jpg)';...
'*.bmp','Bitmap image (*.bmp)';...
'*.*','All Files (*.*)'};
[FileName FilePath] = uigetfile(geshi,'导入外部数据',...
'*.jpg','MultiSelect','on');
% 如果选择了图片文件,生成图片文件的完整路径,否则退出程序,不再运行后面命令
if ~isequal([FileName,FilePath],[0,0]);
FileFullName = strcat(FilePath,FileName);
else
return;
end
n = length(FileFullName); % 选择的图片文件个数
% 设置I、BW、sampledata和samplegroup的初值
I = zeros(50);
BW = zeros(16);
sampledata = zeros(1,256);
samplegroup = [];
% 通过循环对每一个图片进行标准化处理,
% 并生成检验样本数据矩阵sampledata和分组向量samplegroup
for i = 1:n
I = imread(FileFullName{i}); % 读入一幅图片
I = 255-I; % 图像反色处理
I = im2bw(I,0.4); % 设定阈值,把反色后图像转成二值图像
[y,x] = find(I == 1); % 查找数字上像素点的行标y和列标x
BW = I(min(y):max(y),min(x):max(x)); % 截取包含数字的最大区域图像
% 将截取的包含数字的最大区域图像转成16×16的标准化图像
BW = imresize(BW,[16, 16]);
% 将标准化图像按列拉长,生成30×256的检验样本矩阵sampledata
sampledata(i,:) = double(BW(:)');
% 将图片文件名字符串分成三部分:文件路径、不带扩展名的文件名和扩展名字符串
[pathstr,namestr,ext] = fileparts(FileName{i});
% 读取不带扩展名的文件名字符串的第4个字符,得到该图片对应的数字,即该图片所在的组
samplegroup = [samplegroup; str2num(namestr(4))];
end
%*****************************对检验样本图片进行判别*************************
% 利用所创建的朴素贝叶斯分类器对象ObjBayes,对检验样本图片进行判别
pre1 = ObjBayes.predict(sampledata);
% 查看判别结果
[samplegroup, pre1] % 第一列为真实组,第二列为判归的组
没有合适的资源?快使用搜索试试~ 我知道了~
图像处理中的统计应用案例_神经网络应用实例.zip
共93个文件
jpg:52个
bmp:31个
m:6个
0 下载量 92 浏览量
2023-07-31
19:49:06
上传
评论
收藏 2.14MB ZIP 举报
温馨提示
图像处理中的统计应用案例_神经网络应用实例.zip
资源推荐
资源详情
资源评论
收起资源包目录
图像处理中的统计应用案例_神经网络应用实例.zip (93个子文件)
附录A 图像处理中的统计应用案例
检验样本图片
num3_2.bmp 7KB
num0_1.bmp 7KB
num3_3.bmp 7KB
num4_3.bmp 7KB
num2_1.bmp 7KB
num6_3.bmp 7KB
num8_2.bmp 7KB
num1_3.bmp 7KB
num7_2.bmp 7KB
num0_2.bmp 7KB
num1_1.bmp 7KB
num5_2.bmp 7KB
num7_3.bmp 7KB
num2_3.bmp 7KB
num4_2.bmp 7KB
num9_3.bmp 7KB
num9_1.bmp 7KB
num0_3.bmp 7KB
num3_1.bmp 7KB
num8_1.bmp 7KB
num2_2.bmp 7KB
num6_1.bmp 7KB
num4_1.bmp 7KB
num6_2.bmp 7KB
num1_2.bmp 7KB
num9_2.bmp 7KB
num5_3.bmp 7KB
num8_3.bmp 7KB
num7_1.bmp 7KB
num5_1.bmp 7KB
WalkingMan2.gif 779KB
训练样本图片
num7_4.jpg 1KB
num8_3.jpg 1KB
num2_4.jpg 1KB
num2_1.jpg 1KB
num4_4.jpg 1KB
num6_2.jpg 1KB
num9_5.jpg 1KB
num2_3.jpg 1KB
num9_3.jpg 1KB
num8_2.jpg 1KB
num0_5.jpg 1KB
num6_3.jpg 1KB
num4_5.jpg 1KB
num9_4.jpg 1KB
num5_3.jpg 1KB
num4_2.jpg 1KB
num6_1.jpg 1KB
num5_4.jpg 1KB
num1_3.jpg 1006B
num7_1.jpg 1KB
num8_4.jpg 1KB
num1_1.jpg 931B
num7_3.jpg 1KB
num0_1.jpg 1KB
num0_3.jpg 1KB
num3_2.jpg 1KB
num5_1.jpg 1KB
num9_1.jpg 1KB
num8_5.jpg 1KB
num3_1.jpg 1KB
num0_2.jpg 1KB
num9_2.jpg 1KB
num6_5.jpg 1KB
num7_2.jpg 1KB
num6_4.jpg 1KB
num5_2.jpg 1KB
num3_5.jpg 1KB
num1_4.jpg 921B
num0_4.jpg 1KB
num4_3.jpg 1KB
num3_3.jpg 1KB
num1_5.jpg 1KB
num5_5.jpg 1KB
num2_2.jpg 1KB
num8_1.jpg 1KB
num7_5.jpg 1KB
num2_5.jpg 1KB
num1_2.jpg 841B
num3_4.jpg 1KB
num4_1.jpg 1KB
example0A_04.m 4KB
football.jpg 26KB
example0A_03.m 2KB
WalkingMan1.gif 629KB
examp0A_01.bmp 500KB
example0A_01.m 2KB
littleduck.jpg 25KB
example0A_05.m 566B
ImCompressPrin.m 3KB
coins.png 37KB
WalkingMan.avi 624KB
example0A_02.m 2KB
共 93 条
- 1
资源评论
2201_75761617
- 粉丝: 20
- 资源: 7339
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 人脸检测-使用OpenCV实现的动漫+漫画人脸检测算法-附项目源码-优质项目实战.zip
- 道路贴图,材质材料免费
- 58234458141025
- 人脸检测-基于OpenCV+Node.js+WebSockets实现的实时人脸检测应用-附项目源码-优质项目实战.zip
- 一些常见的MySQL死锁案例-mysql-deadlocks-master(源代码+案例+图解说明)
- UE4动画烘焙器-ue4.27
- 新建文件夹.zip
- 1103a2a791bbd96ea98021062e327495b1c422e32fb27e0c2d6404b1bd74b692.gif
- 同城相亲交友php小程序
- stm32f103实现的按键FIFO
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功