这节实现图像的预处理。

在最开始的时候,我们仅仅是把图像进行灰度化,并为了训练效率,强行缩小了图像,导致损失了许多图像信息,实际上,有更多的方法来保存这些信息。

现在流行的图像预处理算法非常多,例如图像反转,灰度线性变换,非线性变换,直方图均衡化,线性平滑滤波器,中值滤波器,Sobel算子和拉普拉斯对图像锐化,梯度算子检测边缘,LOG算子检测边缘,Canny算子检测边缘,边界跟踪(bwtraceboundary函数),Hough变换,直方图阈值法,自动阈值法:Otsu法,膨胀操作,腐蚀操作,开启和闭合操作,开启和闭合组合操作,形态学边界提取等等。

例如对于车牌识别或者指纹检测,我们可以使用图像锐化的方法,这样更容易提取出特征,但是对于一般图像检测的话,锐化可能导致信息丢失,究竟用什么预处理方法,最好的方法就是挨个试一下,哪个有用就用哪个。

说实在的,既然把图像都压缩到60*80大小了,而且还不能变大,变大那么运算力就会吃紧,导致丢失大量信息,另外就是图片也是灰度化的,完全丢失了颜色信息,任何要增加信息量的方法都必然会使运算负担加重,导致图像预处理也就是并没有太大作用了,锐化了的图像就一定能比不锐化的图像识别的更成功吗?不一定,但是可以预见的是,即便是精度有损失,也不一定会损失多少。

因此,我的结论是,对图像不进行图形学上的预处理,直接进行卷积池化获得特征。

在一开始我们怎么压缩的图片呢?是这样的:

img = imresize(img, [60, 80]);

这个imresize是怎么调整到任意大小的呢?它是按照双三次插值,这仍是图形学上的操作,我们用卷积来代替,会得到更多的信息。

卷积参数和池化参数怎么确定呢?这里面可以调整的参数太多了,只能说一个一个试,现在随便选择一个。先把图像大小固定到2828,用20个99的卷积过滤器,池化层为2*2的平均池化,隐藏层100个节点,输出层10个节点,那么,我们需要训练的就只有三个参数,分别是卷积时候的参数,隐藏层的参数和输出层的参数。整个运算过程就可以直接用一个函数代表了。我们可以这样用:

那么这里就会有一个问题,就是一般是有一个b,但是这里没有b的位置了,为了代码清晰,就没用,实际上,既然都这么不准了,或者说,整个网络都没有什么特别清晰的判定标准,多一个b,少一个b又能降低多少精确度呢?you never know.
其中X是输出数据,L为标签,这样,每次输入一个批量的数据,返还修改后的参数,然后循环个几千遍,就算好了。

下节讲代码。

Matlab实现图像识别(八)相关推荐

  1. matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码

    MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...

  2. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  3. matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)

    基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘  要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...

  4. matlab:图像识别

    matlab:图像识别 一.Matlab图像识别的基本原理 二.Matlab图像识别的实现步骤 三.常用的Matlab图像识别算法 四.Matlab图像识别的应用领域 五.总结 Matlab是一款非常 ...

  5. 基于MATLAB车牌图像识别的设计与实现

    课题介绍 车牌图像识别系统是现代智能交通管理的重要组成部分之一.车牌识别系统使车辆管理更智能化,数字化,有效提升了交通管理的方便性和有效性. 车牌识别系统主要包括了图像采集.图像预处理.车牌定位.字符 ...

  6. 等参元八节点matlab,平面四边形八节点等参元matlab程序.docx

    平面四边形八节点等参元matlab程序.docx 1广州大学<有限元方法与程序设计>学院:土木工程学院专业:结构工程姓名:曾一凡学号:21115160**2%平面四边形八节点等参元MATL ...

  7. matlab在图像识别(深度学习神经网络)中的使用(转)

    前言: 1)图像识别用途甚广,解决的算法之一,是深度学习神经网络.matlab近几个版本,对这块的语法修改较多,总体而言,用户用起来更方便了: 2)这里以2018a版本为例,做一些粗略的说明. 1.概 ...

  8. 用MATLAB作图像识别所需要注意的细节!

    ⑴自己构建的图像矩阵一定要从double类型转换为uint8类型!示例代码如下: I1=[50 200 220 100 200]; I1=uint8(I1); ⑵MATLAB因为数组编号从1开始,所以 ...

  9. MATLAB GUI笔记(八):列表框的使用

    笔记八是简单介绍列表框的使用,其功能和按钮组类似. 目录 笔记八是简单介绍列表框的使用,其功能和按钮组类似. 1. 打开GUI 2. 点击列表框 3. 双击列表框菜单看它的属性 4. 双击按钮查看它的 ...

  10. Matlab Tricks( 八)—— 将 pgm 格式文件转换为 png 格式

    clc; clear; close all; list = dir('./*.pgm');% list 为结构体数组 for i = 1:length(list),imwrite(imread(lis ...

最新文章

  1. .net中日至框架log4net.dll如何使用
  2. AnyHand——普通摄像头静态手势识别库
  3. Maven进价:Maven的安装和目录结构
  4. Java基础学习需要掌握哪些内容?
  5. “编程能力差的程序员,90%输在了这点上!”谷歌AI专家:都是瞎努力!
  6. Skill Level 4 D23
  7. python - class类 (七) 三大特性 - 封装 结尾
  8. linux下RRDTool安装方法
  9. 有关电子邮箱的各种协议
  10. Python-科比投篮预测
  11. OI 中转站 accoders
  12. 微信小程序名称、简称设置规范
  13. 微信图片服务器逻辑,关于图片上传原图会被压缩的解决方案
  14. 以桨为楫 修己度人(一)
  15. html标签转换字符类型,java把html标签字符转换成普通字符(反转换成html标签)
  16. Facebook POP 进阶指南
  17. linux samba服务器的配置
  18. 阿里妈妈展示广告引擎动态算力再探索:面向业务收益的机器自适应调配
  19. 卡巴斯基杀毒软件被曝出用户上网痕迹泄露漏洞
  20. 李迟2022年10月工作生活总结

热门文章

  1. 七层网络协议详细解释
  2. jsp允许跨域访问_如何解决js跨域问题
  3. 酷狗与鸿蒙系统,酷狗音乐2020最新版|酷狗音乐鸿蒙版安卓版下载 v10.2.7 - 跑跑车安卓网...
  4. java中的线程模型_Java 线程模型
  5. IBM8800存储,光钎交换机384B,主机Linux,二代支付前置
  6. SQL 建表与索引
  7. 下载 .m3u8视频文件
  8. python文本处理
  9. linux 显卡驱动错误,ubuntu下 Nvidia显卡驱动错误的解决
  10. H3C交换机配置简单教程