首页> 搜索结果页
"matlab与图像识别" 检索
共 212 条结果
《精通Matlab数字图像处理与识别》一导读
前 言 精通Matlab数字图像处理与识别图像处理与识别是当今计算机科学中一个热门研究方向,其应用广泛,发展前景乐观。Matlab是MathWorks公司开发的一款工程数学计算软件。由于其强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计,以及便捷的与其他程序和语言接口的功能,Matlab已成为当今国际上科学界最具影响力、最有活力的软件。本书正是紧密结合大量的Matlab代码和案例展开对数字图像处理和识别技术的介绍。 让计算机理解所“看”到的东西是一件非常神秘和令人兴奋的事情。但要掌握好数字图像处理与识别技术却并非易事,它的理论性较强、门槛较高,在各个高校中,这门课程多是作为计算机专业研究生的选修课程。要理解该领域的知识,读者需要具有一定的数学基础,除此之外,还涉及信号处理、统计分析、模式识别和机器学习等专业领域知识,因此,令很多人望而却步。 其实“难以理解”的关键在于缺乏必要的先序知识,造成了读者在相关知识上难以跨越的鸿沟。我们在撰写本书过程中,对于可能造成读者理解困难的地方,均给出了必要的先序知识,尽量定性地去描述;对于那些并不一目了然的结论均给出了思路和解释;对于某些非常专业、已经超过本书讨论范围的相关知识也都在全书最后给出了参考文献,供有兴趣的读者进一步学习和研究。 本书的宗旨是,向读者介绍知识的同时,培养读者的思维方法,使读者知其然还要知其所以然,并在解决实际问题中能有自己的想法。 目 录 第1章 初识数字图像处理与识别第2章 MATLAB数字图像处理基础第3章 图像的点运算第4章 图像的几何变换第5章 空间域图像增强第6章 频率域图像增强 6.1 频率域滤波——与空间域滤波殊途同归 6.2 傅立叶变换基础知识 6.3 快速傅立叶变换及实现 6.4 频域滤波基础 6.5 频域低通滤波器 6.6 频率域高通滤波器 6.7 Matlab综合案例——利用频域滤波消除周期噪声 6.8 频域滤波器与空域滤波器之间的内在联系 第7章 小波变换第8章 图像复原第9章 彩色图像处理第10章 形态学图像处理第11章 图像分割第12章 特征提取第13章 图像识别初步第14章 人工神经网络第15章 支持向量机参考文献
文章
机器学习/深度学习  ·  计算机视觉
2017-05-02
《数字图像处理与机器视觉——Visual C++与Matlab实现》导读
前 言 数字图像处理与机器视觉——Visual C++与Matlab实现图像处理与机器视觉是当前计算机科学的一个热门研究方向,它应用广泛,发展前景乐观。近年来,伴随着人工智能、模式识别学科以及人机智能接口技术的飞速发展,机器视觉的研究正在不断升温从日常生活中与我们息息相关的光学字符识别(OCR)和汽车自动驾驶,到医学应用中的病灶检测与分析,再到未来人机智能交互领域中的人脸识别,情感计算,等等。而图像处理是机器视觉研究中必不可少的图像预处理环节,是我们需要掌握的首要技术。 和图像相关的东西往往容易引起计算机初学者的兴趣,我在读大学本科的时候就觉得能让计算机理解所“看”到的东西是一件非常神秘和令人兴奋的事情;但同时它的理论性较强,门槛较高,在各个高校中,这门课程大多也是作为计算机专业研究生的选修课程。要理解该领域的知识,读者需要具有一定的数学基础,除此之外还涉及到信号处理、统计分析、模式识别和机器学习等专业领域知识,因此令很多人望而却步。 其实“难以理解”关键在于缺乏必要的先序知识,这才是难以跨越的鸿沟。我们在撰写本书过程中,对于可能造成理解困难的地方,均尽可能地给出了必要的先序知识,深入浅出,尽量定性地进行描述;对于那些并不一目了然的结论均给出了思路和解释,必要的还在附录中提供了证明;对于某些非常专业已经超过本书讨论范围的相关知识则在最后给出了参考文献,供有兴趣的读者进一步学习和研究。 本书的宗旨是在向读者介绍知识的同时,培养读者的思维方法,使读者知其然还要知其所以然,并在解决实际问题中能有自己的想法。 目录 第0章 数字图像处理概述 0.1 数字图像0.2 数字图像处理与识别0.3 数字图像处理的预备知识 第1章 Matlab图像处理编程基础 1.1 Matlab操作简介1.2 Matlab图像类型及其存储方式1.3 Matlab的图像转换1.4 读取和写入图像文件1.5 图像的显示
文章
人工智能  ·  C++  ·  计算机视觉  ·  自动驾驶  ·  机器学习/深度学习  ·  存储  ·  文字识别
2017-05-02
《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》导读
前言 数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)图像处理与机器视觉是当今计算机科学中的一个热门研究方向,应用广泛,发展前景乐观。近年来,伴随着人工智能、模式识别学科以及人机智能接口技术的飞速发展,机器视觉的研究正在不断升温——从日常生活中与人类息息相关的光学字符识别(OCR)和汽车自动驾驶,到医学应用中的病灶检测与分析,再到未来人机智能交互领域中的人脸识别、情感计算等,图像处理作为机器视觉研究中必不可少的图像预处理环节是读者需要掌握的首要技术。 和图像相关的东西往往容易引起计算机初学者的兴趣,笔者在读本科的时候就觉得能让计算机理解所“看”到的东西是一件非常神秘和令人兴奋的事情;但同时它的理论性较强,门槛较高,在各个高校中,这门课程大多也是作为计算机专业研究生的选修课程。要理解该领域的知识,读者需要具有一定的数学基础,除此之外还涉及信号处理、统计分析、模式识别和机器学习等专业领域知识,因此令很多人望而却步。 其实“难以理解”的关键在于缺乏必要的先序知识,造成了读者在相关知识上难以跨越的鸿沟。在撰写本书过程中,对于可能造成读者理解困难的地方,均尽可能地给出了必要的基本知识,深入浅出,尽量定性地去描述,对于那些并不一目了然的结论均给出了思路和解释,必要的还提供了证明,对于某些非常专业已经超过本书讨论范围的相关知识在最后给出了参考文献,供有兴趣的读者进一步学习和研究。 第 01章 初识数字图像处理与机器视觉 1.1 数字图像1.2 数字图像处理与机器视觉1.3 数字图像处理的预备知识 第 2 章 MATLAB数字图像处理编程基础 2.1 MATLAB R2011a简介2.2 MATLAB图像类型及其存储方式2.3 MATLAB的图像转换2.4 读取和写入图像文件2.5 图像的显示
文章
人工智能  ·  C++  ·  计算机视觉
2017-05-02
《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》导读
前言 数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)图像处理与机器视觉是当今计算机科学中的一个热门研究方向,应用广泛,发展前景乐观。近年来,伴随着人工智能、模式识别学科以及人机智能接口技术的飞速发展,机器视觉的研究正在不断升温——从日常生活中与人类息息相关的光学字符识别(OCR)和汽车自动驾驶,到医学应用中的病灶检测与分析,再到未来人机智能交互领域中的人脸识别、情感计算等,图像处理作为机器视觉研究中必不可少的图像预处理环节是读者需要掌握的首要技术。 和图像相关的东西往往容易引起计算机初学者的兴趣,笔者在读本科的时候就觉得能让计算机理解所“看”到的东西是一件非常神秘和令人兴奋的事情;但同时它的理论性较强,门槛较高,在各个高校中,这门课程大多也是作为计算机专业研究生的选修课程。要理解该领域的知识,读者需要具有一定的数学基础,除此之外还涉及信号处理、统计分析、模式识别和机器学习等专业领域知识,因此令很多人望而却步。 其实“难以理解”的关键在于缺乏必要的先序知识,造成了读者在相关知识上难以跨越的鸿沟。在撰写本书过程中,对于可能造成读者理解困难的地方,均尽可能地给出了必要的基本知识,深入浅出,尽量定性地去描述,对于那些并不一目了然的结论均给出了思路和解释,必要的还提供了证明,对于某些非常专业已经超过本书讨论范围的相关知识在最后给出了参考文献,供有兴趣的读者进一步学习和研究。 本书的宗旨是在向读者介绍知识的同时,培养读者的思维方法,使读者知其然还要知其所以然,并在解决实际问题中能有自己的想法。 目录 第 0 章 初识数字图像处理与机器视觉 **0.1 数字图像0.2 数字图像处理与机器视觉0.3 数字图像处理的预备知识** 第 1 章 MATLAB数字图像处理编程基础 **1.1 MATLAB图像类型及其存储方式1.2 MATLAB的图像转换1.3 读取和写入图像文件1.4 图像的显示**
文章
人工智能  ·  C++  ·  计算机视觉  ·  自动驾驶  ·  机器学习/深度学习  ·  存储  ·  文字识别
2017-05-02
《精通Matlab数字图像处理与识别》一第6章 频率域图像增强
本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区“异步社区”公众号查看 第6章 频率域图像增强 精通Matlab数字图像处理与识别空间域和频率域为我们提供了不同的视角。在空间域中,函数的自变量(x,y)被视为二维空间中的一点,数字图像f(x,y)即为一个定义在二维空间中的矩形区域上的离散函数;换一个角度,如果将f(x,y)视为幅值变化的二维信号,则可以通过某些变换手段(如傅立叶变换、离散余弦变换、沃尔什变换和小波变换等)在频域下对它进行分析。 第5章详细介绍了空间域图像增强的有关知识,紧接着本章就从频域的角度去看待和分析图像增强问题,相信这一定会使您对图像增强的理解更加深刻。 本章的知识和技术热点 傅立叶变换的数学基础 快速傅立叶变换 频率域图像增强 高通滤波器和低通滤波器 本章的典型案例分析 美女与猫——交换两幅图像的相位谱 利用频域滤波消除周期噪声
文章
计算机视觉
2017-05-02
《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别
本节书摘来自异步社区出版社《数字图像处理与机器视觉——Visual C++与Matlab实现》一书中的第0章,第0.2节,作者: 张铮 , 王艳平 , 薛桂香,更多章节内容可以访问云栖社区“异步社区”公众号查看。 0.2 数字图像处理与识别 数字图像处理与机器视觉——Visual C++与Matlab实现 0.2.1 从图像处理到图像识别 图像处理、图像分析和图像识别是认知学科与计算机学科中的一个令人兴奋的活跃分支。经历了1970年人们对其兴趣的爆炸性增长以来,这个领域到上世纪末逐渐步入成熟。其中,遥感、技术诊断、智能车自主导航、医学平面和立体成像、自动监视领域是发展最快的一些方向。这种进展最集中地体现则是市场上多种应用这类技术的产品的纷纷涌现。事实上,从数字图像处理到数字图像分析,再发展到最前沿的图像识别技术,其核心都是对数字图像中所包含信息的提取及与其相关的各种辅助过程。 1.数字图像处理数字图像处理(Digital Image Processing)是指使用电子计算机对量化的数字图像进行处理,具体地说就是通过对图像进行各种加工来改善图像的外观,是对图像的修改和增强。 图像处理的输入是从传感器或其他来源获取的原始的数字图像,输出是经过处理后的输出图像。处理的目的可能是使输出图像具有更好的效果,以便于人的观察;也可能是为图像分析和识别做准备,此时的图像处理是作为一种预处理步骤,输出图像将进一步供其他图像分析、识别算法使用。 2.数字图像分析数字图像分析(Digital Image Analyzing)是指对图像中感兴趣的目标进行检测和测量,以获得客观的信息。数字图像分析通常是指将一幅图像转化为另一种非图像的抽象形式,例如图像中某物体与测量者的距离,目标对象的计数或其尺寸等。这一概念的外延包括边缘检测和图像分割、特征提取以及几何测量与计数等。 图像分析的输入是经过处理的数字图像,其输出通常不再是数字图像,而是一系列与目标相关的图像特征(目标的描述),如目标的长度、颜色、曲率和个数等。 3.数字图像识别数字图像识别(Digital Image Recognition)主要是研究图像中各目标的性质和相互关系,识别出目标对象的类别,从而理解图像的含义。它囊括了使用数字图像处理技术的很多应用项目,例如光学字符识别(OCR)、产品质量检验、人脸识别、自动驾驶、医学图像和地貌图像的自动判读理解等。 图像识别是图像分析的延伸,它根据图像分析中得到的相关描述(特征)对目标进行归类,输出我们感兴趣的目标类别标号信息(符号)。 总而言之,从图像处理到图像分析再到图像识别的过程,是一个将所含信息抽象化,尝试降低信息熵,提炼有效数据的过程,如图0.5所示。 从信息论的角度而言,图像应当是物体所含信息的一个概括,而数字图像处理侧重于将这些概括的信息进行变换,例如升高或降低熵值,数字图像分析则是将这些信息抽取出来以供其他过程调用。当然,在不太严格时,数字图像处理也可以兼指图像处理和分析。 读者或许也听过另一个概念——计算机图形学(Computer Graphics)。此概念与数字图像分析大致相反,它是一个对由概念或数学表述的物体图像进行处理和显示的过程。 0.2.2 什么是机器视觉 机器视觉(Machine Vision),又称计算机视觉(Computer Vision)。它是将数字图像处理和数字图像分析、图像识别结合起来,试图开发出一种能与人脑的部分机能比拟,能够理解自然景物和环境的系统,在机器人领域中为机器人提供类人视觉的功能。计算机视觉是数字成像领域的尖端方向,具有最综合的内容和最广泛的涵盖面。 icon-info提示: 后文中,如无特别说明,我们通常使用广义的图像处理概念,即用数字图像处理这个词涵盖上文所提到的图像处理和数字图像分析;而对图像识别和机器视觉的概念常常不加区分,尽管严格地说识别只对应于高级视觉的范畴。 0.2.3 数字图像处理和识别的应用实例 如今,数字图像处理与机器视觉的应用越来越广泛,已经渗透到国家安全、航空航天、工业控制、医疗保健等各个领域乃至日常生活和娱乐当中,在国民经济中发挥着举足轻重的作用。 一些典型的应用如表0.2所示。 本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
文章
C++  ·  计算机视觉
2017-05-02
《精通Matlab数字图像处理与识别》一6.1 频率域滤波——与空间域滤波殊途同归
本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章,第6.1节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区“异步社区”公众号查看 6.1 频率域滤波——与空间域滤波殊途同归 精通Matlab数字图像处理与识别在很多情况下,频率域滤波和空间域滤波可以视为对于同一个图像增强问题的殊途同归的两种解决方式。而在另外一些情况下,有些增强问题更适合在频域中完成(6.7节),有些则更适合在空域中完成。我们常常根据需要选择是工作在空间域还是频率域,并在必要时在空间域和频率域之间相互转换。 傅立叶变换提供了一种变换到频率域的手段,由于用傅立叶变换表示的函数特征可以完全通过傅立叶反变换进行重建,不丢失任何信息,因此它可以使我们工作在频率域,而在转换回空间域时不丢失任何信息。
文章
计算机视觉
2017-05-02
Matlab与.NET混合编程解决人脸识别问题
原文:【原创】Matlab与.NET混合编程解决人脸识别问题 如果这些文章对你有用,有帮助,期待更多开源组件介绍,请不要吝啬手中的鼠标。  【原创分享】Matlab.NET混编调用Figure窗体 http://www.cnblogs.com/asxinyu/archive/2013/04/14/3020813.html   【原创】Matlab与.NET基于类型安全的接口编程入门 http://www.cnblogs.com/asxinyu/archive/2013/05/16/3082299.html 【原创】开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html   【原创】关于.NET下开源及商业图像处理(PSD)组件 http://www.cnblogs.com/asxinyu/archive/2013/03/21/2972491.html   【原创】.NET开源压缩组件介绍与入门  http://www.cnblogs.com/asxinyu/archive/2013/03/05/2943696.html   【原创】开源Word读写组件DocX介绍与入门[资料已发送]  http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html   【原创】C#开源轻量级对象数据库NDatabase介绍【资料已发送】  http://www.cnblogs.com/asxinyu/archive/2013/02/20/2918066.html  关键词:混合编程,Matlab编程,Matlab混编,C#调用Matlab,Matlab与C#混编 1.前言 Matlab的强大计算引擎和工具箱,让很多人垂涎欲滴,Mathworks也对其他语言的支持越来越好,对.NET平台的支持也越来越强大。3年前偶然接触Matlab与C#混合编程,期间断断续续完成了很多不同类型问题的处理,并完成了几个小项目,积累了不少经验,现在已经很熟练的能够解决Matlab和C#的混编问题。鉴于很多大学毕业生或者研究生接触混编,有很大难处,也有很多人经常来问很基础的问题,所以2012年年底录制了国内第一套比较完成的Matlab与,NET的混合编程入门视频教程,即将在ILoveMatlab论坛发布。最近完成了一个Matlab和C#混合编程解决“人脸识别”的案例,再次分享一下经验。 2.Matlab.NET混合编程概述  这方面就不仔细阐述了,主要是利用Matlab的Deploytool工具将m函数编译为.NET程序集,然后在C#中调用的过程。然后程序可以在安装MCR的机器上运行,这个过程如果懂Matalb和C#的人,看看Matlab NE Builder工具箱的帮助入门文档,也很容易的可以搞定,只不过是英文的,要花点时间和耐心。下面简单说一下Matlab和.NET混合编程的步骤和注意要点:  1.只有Matlab的Function才能被混编调用,也就是一定要是M函数才行; 2.Matlab和C#混编的项目,客户机或者服务器需要安装对应版本的MCR,才能运行。 3.有一些工具箱函数不能被混编,暂时不支持,少数,官方也在努力使得越来越多的工具箱支持混编,详细的可以混编的工具箱可以在这里查看。  4.2点经常人提起的:神经网络工具箱可以train,不能Test,符号工具箱也不能混编,所以如果想用C#和Matlab解决上述2类问题的人,提前罢手。  5.Matlab和C#混编的基本步骤,这里只是混合编程的方法之一,也是基本方法.  1) 编写M函数,并首先在Matlab中测试是正确可以调用的。注意命名规范,注释规范;  2) 使用命令打开 deploytool工具,设置项目名称,选择类型:.NET Assembly,然后新建一个类,并添加编写好的M函数  3) 编译,生成dll,并在C#项目中添加引用(还需要引用对应版本的MWArray),利用对象浏览器查看生成dll的方法结构,并根据Matlab和C#的类型转换规则,进行数据转换即可。  3.混合编程解决人脸识别  人脸识别是图像处理里面比较常见和经典的问题之一吧。现在研究也很成熟了,本文的人脸识别的Matlab源程序也是一个开源的人脸识别例子。经过分析和改进,进行了重构,最后再进行混编。原始的人脸识别程序,主要有下面几个部分:  1.人脸检测:这个过程主要是对输入的人脸图像进行肤色判断椭圆类聚判断,把符合人脸特征的矩形标记出来,截取人脸。  2.人脸数据库训练:这是整个问题的核心,人脸特征的训练直接关系到识别的准确率。主要过程是将目标的人脸数据库进行训练,得到一个最好的分类系数和特征值,作为人脸识别的参数和比较目标。  3.人脸识别:将目标图像进行人脸特征提取,并进行傅立叶变换,利用遗传算法提取特征值,然后与特征库里面的人脸特征进行距离计算,得到结果。  原始的项目程序都是Matlab程序,很多不规范的地方,不完全是M函数,参数定义也不规范,我接受后,对整个Matlab项目程序进行了重构,功能更加清晰,函数定义更加合理,然后混编后,在C#中调用也方便多了。看看主要界面和核心代码: 另外,在C#中由于需要存储人脸数据库以及人脸特征,特意选择了一个.NET开发的XML数据库,详细使用可以参考我的这篇博客:开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html  ,这个还是很方便的。只不过的后期发现了一个Bug,主要是这个XML数据库内部默认采用了“当前目录”找出的,当前目录和程序启动目录是有区别的,因为当前目录是根据软件使用过程,可能会有变化的。后来把源程序找出来,调试修复了这个错误。我把修复后的版本源代码发出来,大家有需要的下载使用吧。主要是在构造函数里面加了一个程序启动路径,说来也奇怪,Win7下是好的,XP就有这个问题。当然修复后都没这个问题了。看看C#混合编程调用Matlab生成程序集的核心代码:   上面是混编项目的结构,下面是人脸识别中c#中的核心代码,调用Matlab生成的程序集进行识别。 就这么多吧。混编真的很强大,对做科研的朋友来说,真是一大福音啊。但这对开发的基础要求也很高,否则遇到很多奇怪的错误,还是要靠经验去解决,并不是一次都能够完全学会Matlab混编的。
文章
Web App开发  ·  C#  ·  数据库  ·  数据格式  ·  计算机视觉
2014-04-30
【原创】Matlab与.NET混合编程解决人脸识别问题
              本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新       Matlab和C#混合编程文章目录 :【目录】Matlab和C#混合编程文章目录 如果这些文章对你有用,有帮助,期待更多开源组件介绍,请不要吝啬手中的鼠标。  【原创分享】Matlab.NET混编调用Figure窗体 http://www.cnblogs.com/asxinyu/archive/2013/04/14/3020813.html   【原创】Matlab与.NET基于类型安全的接口编程入门 http://www.cnblogs.com/asxinyu/archive/2013/05/16/3082299.html 【原创】开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html   【原创】关于.NET下开源及商业图像处理(PSD)组件 http://www.cnblogs.com/asxinyu/archive/2013/03/21/2972491.html   【原创】.NET开源压缩组件介绍与入门  http://www.cnblogs.com/asxinyu/archive/2013/03/05/2943696.html   【原创】开源Word读写组件DocX介绍与入门[资料已发送]  http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html   【原创】C#开源轻量级对象数据库NDatabase介绍【资料已发送】  http://www.cnblogs.com/asxinyu/archive/2013/02/20/2918066.html  关键词:混合编程,Matlab编程,Matlab混编,C#调用Matlab,Matlab与C#混编 1.前言 Matlab的强大计算引擎和工具箱,让很多人垂涎欲滴,Mathworks也对其他语言的支持越来越好,对.NET平台的支持也越来越强大。3年前偶然接触Matlab与C#混合编程,期间断断续续完成了很多不同类型问题的处理,并完成了几个小项目,积累了不少经验,现在已经很熟练的能够解决Matlab和C#的混编问题。鉴于很多大学毕业生或者研究生接触混编,有很大难处,也有很多人经常来问很基础的问题,所以2012年年底录制了国内第一套比较完成的Matlab与,NET的混合编程入门视频教程,即将在ILoveMatlab论坛发布。最近完成了一个Matlab和C#混合编程解决“人脸识别”的案例,再次分享一下经验。 2.Matlab.NET混合编程概述  这方面就不仔细阐述了,主要是利用Matlab的Deploytool工具将m函数编译为.NET程序集,然后在C#中调用的过程。然后程序可以在安装MCR的机器上运行,这个过程如果懂Matalb和C#的人,看看Matlab NE Builder工具箱的帮助入门文档,也很容易的可以搞定,只不过是英文的,要花点时间和耐心。下面简单说一下Matlab和.NET混合编程的步骤和注意要点:  1.只有Matlab的Function才能被混编调用,也就是一定要是M函数才行; 2.Matlab和C#混编的项目,客户机或者服务器需要安装对应版本的MCR,才能运行。 3.有一些工具箱函数不能被混编,暂时不支持,少数,官方也在努力使得越来越多的工具箱支持混编,详细的可以混编的工具箱可以在这里查看。  4.2点经常人提起的:神经网络工具箱可以train,不能Test,符号工具箱也不能混编,所以如果想用C#和Matlab解决上述2类问题的人,提前罢手。  5.Matlab和C#混编的基本步骤,这里只是混合编程的方法之一,也是基本方法.  1) 编写M函数,并首先在Matlab中测试是正确可以调用的。注意命名规范,注释规范;  2) 使用命令打开 deploytool工具,设置项目名称,选择类型:.NET Assembly,然后新建一个类,并添加编写好的M函数  3) 编译,生成dll,并在C#项目中添加引用(还需要引用对应版本的MWArray),利用对象浏览器查看生成dll的方法结构,并根据Matlab和C#的类型转换规则,进行数据转换即可。  3.混合编程解决人脸识别  人脸识别是图像处理里面比较常见和经典的问题之一吧。现在研究也很成熟了,本文的人脸识别的Matlab源程序也是一个开源的人脸识别例子。经过分析和改进,进行了重构,最后再进行混编。原始的人脸识别程序,主要有下面几个部分:  1.人脸检测:这个过程主要是对输入的人脸图像进行肤色判断椭圆类聚判断,把符合人脸特征的矩形标记出来,截取人脸。  2.人脸数据库训练:这是整个问题的核心,人脸特征的训练直接关系到识别的准确率。主要过程是将目标的人脸数据库进行训练,得到一个最好的分类系数和特征值,作为人脸识别的参数和比较目标。  3.人脸识别:将目标图像进行人脸特征提取,并进行傅立叶变换,利用遗传算法提取特征值,然后与特征库里面的人脸特征进行距离计算,得到结果。  原始的项目程序都是Matlab程序,很多不规范的地方,不完全是M函数,参数定义也不规范,我接受后,对整个Matlab项目程序进行了重构,功能更加清晰,函数定义更加合理,然后混编后,在C#中调用也方便多了。看看主要界面和核心代码: 另外,在C#中由于需要存储人脸数据库以及人脸特征,特意选择了一个.NET开发的XML数据库,详细使用可以参考我的这篇博客:开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html  ,这个还是很方便的。只不过的后期发现了一个Bug,主要是这个XML数据库内部默认采用了“当前目录”找出的,当前目录和程序启动目录是有区别的,因为当前目录是根据软件使用过程,可能会有变化的。后来把源程序找出来,调试修复了这个错误。我把修复后的版本源代码发出来,大家有需要的下载使用吧。主要是在构造函数里面加了一个程序启动路径,说来也奇怪,Win7下是好的,XP就有这个问题。当然修复后都没这个问题了。看看C#混合编程调用Matlab生成程序集的核心代码:   上面是混编项目的结构,下面是人脸识别中c#中的核心代码,调用Matlab生成的程序集进行识别。 就这么多吧。混编真的很强大,对做科研的朋友来说,真是一大福音啊。但这对开发的基础要求也很高,否则遇到很多奇怪的错误,还是要靠经验去解决,并不是一次都能够完全学会Matlab混编的。
文章
XML  ·  C#  ·  数据库  ·  计算机视觉  ·  数据格式
2016-02-20
【原创】Matlab与.NET混合编程解决人脸识别问题
阅读目录 1.前言 2.Matlab.NET混合编程概述  3.混合编程解决人脸识别                本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新       Matlab和C#混合编程文章目录 :【目录】Matlab和C#混合编程文章目录 如果这些文章对你有用,有帮助,期待更多开源组件介绍,请不要吝啬手中的鼠标。  【原创分享】Matlab.NET混编调用Figure窗体 http://www.cnblogs.com/asxinyu/archive/2013/04/14/3020813.html   【原创】Matlab与.NET基于类型安全的接口编程入门 http://www.cnblogs.com/asxinyu/archive/2013/05/16/3082299.html 【原创】开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html   【原创】关于.NET下开源及商业图像处理(PSD)组件 http://www.cnblogs.com/asxinyu/archive/2013/03/21/2972491.html   【原创】.NET开源压缩组件介绍与入门  http://www.cnblogs.com/asxinyu/archive/2013/03/05/2943696.html   【原创】开源Word读写组件DocX介绍与入门[资料已发送]  http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html   【原创】C#开源轻量级对象数据库NDatabase介绍【资料已发送】  http://www.cnblogs.com/asxinyu/archive/2013/02/20/2918066.html  关键词:混合编程,Matlab编程,Matlab混编,C#调用Matlab,Matlab与C#混编 回到目录 1.前言 Matlab的强大计算引擎和工具箱,让很多人垂涎欲滴,Mathworks也对其他语言的支持越来越好,对.NET平台的支持也越来越强大。3年前偶然接触Matlab与C#混合编程,期间断断续续完成了很多不同类型问题的处理,并完成了几个小项目,积累了不少经验,现在已经很熟练的能够解决Matlab和C#的混编问题。鉴于很多大学毕业生或者研究生接触混编,有很大难处,也有很多人经常来问很基础的问题,所以2012年年底录制了国内第一套比较完成的Matlab与,NET的混合编程入门视频教程,即将在ILoveMatlab论坛发布。最近完成了一个Matlab和C#混合编程解决“人脸识别”的案例,再次分享一下经验。 回到目录 2.Matlab.NET混合编程概述  这方面就不仔细阐述了,主要是利用Matlab的Deploytool工具将m函数编译为.NET程序集,然后在C#中调用的过程。然后程序可以在安装MCR的机器上运行,这个过程如果懂Matalb和C#的人,看看Matlab NE Builder工具箱的帮助入门文档,也很容易的可以搞定,只不过是英文的,要花点时间和耐心。下面简单说一下Matlab和.NET混合编程的步骤和注意要点:  1.只有Matlab的Function才能被混编调用,也就是一定要是M函数才行; 2.Matlab和C#混编的项目,客户机或者服务器需要安装对应版本的MCR,才能运行。 3.有一些工具箱函数不能被混编,暂时不支持,少数,官方也在努力使得越来越多的工具箱支持混编,详细的可以混编的工具箱可以在这里查看。  4.2点经常人提起的:神经网络工具箱可以train,不能Test,符号工具箱也不能混编,所以如果想用C#和Matlab解决上述2类问题的人,提前罢手。  5.Matlab和C#混编的基本步骤,这里只是混合编程的方法之一,也是基本方法.  1) 编写M函数,并首先在Matlab中测试是正确可以调用的。注意命名规范,注释规范;  2) 使用命令打开 deploytool工具,设置项目名称,选择类型:.NET Assembly,然后新建一个类,并添加编写好的M函数  3) 编译,生成dll,并在C#项目中添加引用(还需要引用对应版本的MWArray),利用对象浏览器查看生成dll的方法结构,并根据Matlab和C#的类型转换规则,进行数据转换即可。  回到目录 3.混合编程解决人脸识别  人脸识别是图像处理里面比较常见和经典的问题之一吧。现在研究也很成熟了,本文的人脸识别的Matlab源程序也是一个开源的人脸识别例子。经过分析和改进,进行了重构,最后再进行混编。原始的人脸识别程序,主要有下面几个部分:  1.人脸检测:这个过程主要是对输入的人脸图像进行肤色判断椭圆类聚判断,把符合人脸特征的矩形标记出来,截取人脸。  2.人脸数据库训练:这是整个问题的核心,人脸特征的训练直接关系到识别的准确率。主要过程是将目标的人脸数据库进行训练,得到一个最好的分类系数和特征值,作为人脸识别的参数和比较目标。  3.人脸识别:将目标图像进行人脸特征提取,并进行傅立叶变换,利用遗传算法提取特征值,然后与特征库里面的人脸特征进行距离计算,得到结果。  原始的项目程序都是Matlab程序,很多不规范的地方,不完全是M函数,参数定义也不规范,我接受后,对整个Matlab项目程序进行了重构,功能更加清晰,函数定义更加合理,然后混编后,在C#中调用也方便多了。看看主要界面和核心代码: 另外,在C#中由于需要存储人脸数据库以及人脸特征,特意选择了一个.NET开发的XML数据库,详细使用可以参考我的这篇博客:开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.html  ,这个还是很方便的。只不过的后期发现了一个Bug,主要是这个XML数据库内部默认采用了“当前目录”找出的,当前目录和程序启动目录是有区别的,因为当前目录是根据软件使用过程,可能会有变化的。后来把源程序找出来,调试修复了这个错误。我把修复后的版本源代码发出来,大家有需要的下载使用吧。主要是在构造函数里面加了一个程序启动路径,说来也奇怪,Win7下是好的,XP就有这个问题。当然修复后都没这个问题了。看看C#混合编程调用Matlab生成程序集的核心代码:   上面是混编项目的结构,下面是人脸识别中c#中的核心代码,调用Matlab生成的程序集进行识别。 就这么多吧。混编真的很强大,对做科研的朋友来说,真是一大福音啊。但这对开发的基础要求也很高,否则遇到很多奇怪的错误,还是要靠经验去解决,并不是一次都能够完全学会Matlab混编的。 本文转自数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/archive/2013/05/29/DoNet_Invoke_Matlab_Identify_Demo.html,如需转载请自行联系原作者
文章
Web App开发  ·  C#  ·  数据库  ·  计算机视觉  ·  数据格式
2017-11-26
...
跳转至:
人工智能
2595 人关注 | 9266 讨论 | 61656 内容
+ 订阅
  • 模型部署入门教程(四):在 PyTorch 中支持更多 ONNX 算子
  • 深度学习优化器中的变形金刚:Ranger21
  • 4万字聊聊阿里二面,能抗多少?(上)
查看更多 >
开发与运维
5191 人关注 | 125222 讨论 | 183494 内容
+ 订阅
  • 3万字聊聊什么是RocketMQ(一)
  • 模型部署入门教程(四):在 PyTorch 中支持更多 ONNX 算子
  • 深度学习优化器中的变形金刚:Ranger21
查看更多 >
数据库
248759 人关注 | 44342 讨论 | 55295 内容
+ 订阅
  • 3万字聊聊什么是RocketMQ(一)
  • 4万字聊聊阿里二面,能抗多少?(中)
  • jQuery 已“死”?Gitee 关闭部分开源仓库;微软宣布为员工加薪应对通胀;蔚来又上市了;小鹏回应解约应届生
查看更多 >
大数据
183948 人关注 | 22886 讨论 | 51318 内容
+ 订阅
  • 模型部署入门教程(四):在 PyTorch 中支持更多 ONNX 算子
  • 如何选择阿里云服务器ECS,性能测试PTS助你对云服务器进行压力测试
  • Ant Design of Vue详细学习笔记(持续更新)
查看更多 >