基于海康彩色相机SDK与Halcon的实时图像处理系统开发实战

海康视觉相机的坑 首先客户端打开是能自动识别相机的,而且可以使用,然后你把客户端关闭,打开halcon17(我的是17)你会发现halcon17会自动识别相机,而且使用的接口是usb3Vision接口,而且会要求你安装一些东西,这时候你会点击确定,好了,你的halcon是可以工作了,但是你的客户端就会出现无驱动,而且无论你怎么卸载相机驱动还是重装客户端,都只出现一个问题就是无驱动。此时在打开,采集,实时就可以了,然后把halcon关闭在打开客户端,你会发现还是可以使用的。不要点击Halcon图像采集助手中建议的解决方案! 阅读详情

1. 从零搭建:为什么选择海康相机SDK与Halcon这对黄金搭档?

如果你正在做工业视觉项目,比如产品外观检测、尺寸测量或者机器人引导,那你肯定遇到过这两个核心问题:怎么稳定地拿到高质量的实时图像? 和 怎么快速、准确地分析这些图像? 我做了这么多年视觉项目,发现很多团队在这两个环节上反复折腾,要么是相机驱动不稳定,要么是算法库太复杂,项目进度卡在半路。

今天我就来分享一个实战中验证过的高效组合:海康威视工业相机 + Halcon视觉库。这个组合为什么好?简单说就是“专业的人干专业的事”。海康的相机硬件和配套的MVS SDK,在图像采集的稳定性和易用性上,是国内工业领域的佼佼者,文档全、接口稳定,特别是对自家相机的支持,几乎不会出现兼容性问题。而Halcon,作为机器视觉领域的“瑞士军刀”,它的算法库之丰富、成熟度之高,能让你把精力完全集中在解决视觉问题本身,而不是去重复造轮子,写基础的图像处理函数。

你可能用过OpenCV,它很强大,但在工业场景下,Halcon在算法精度、执行速度以及针对工业图像的专用算子(比如亚像素边缘、模板匹配、标定)上,优势非常明显。更重要的是,Halcon的HDevelop环境可以让你先用图形化方式快速验证算法流程,然后再用C#、C++等语言集成,开发效率极高。把海康SDK负责的“眼睛”(稳定采集)和Halcon负责的“大脑”(智能分析)结合起来,一个健壮、高效的实时图像处理系统骨架就搭好了。接下来,我就带你一步步把这个骨架填充上血肉,从环境配置到代码实战,让你能亲手搭出一个可运行的系统。

2. 开发环境准备:别在第一步就踩坑

万事开头难,环境配置好了,后面就顺风顺水。这里我会把每一步都掰开揉碎,确保你一次成功。

2.1 硬件与软件清单

工欲善其事,必先利其器。我们先来清点一下需要的“装备”:

  • 硬件:

    • 海康威视工业相机:比如我用的MV-CE013-50GC,这是一款130万像素的彩色CCD相机。选择它是因为色彩还原好,适合需要颜色信息的检测场景。你的相机型号可能不同,但开发流程完全通用。
    • 合适的镜头:根据你的工作距离和视野选择,常用的是C口镜头。
    • 一根靠谱的线缆:如果是GigE(网口)相机,用超五类或六类网线;如果是USB3.0相机,用带屏蔽的USB3.0数据线。线材质量不好会导致丢包、图像花屏,千万别省这个钱。
    • 一台性能足够的工控机或PC:建议i5以上CPU,内存8G起步,最好有千兆网卡(针对GigE相机)或原生的USB3.0接口。
  • 软件:

    • 操作系统:Windows 10 或 Windows 11。建议用64位系统,兼容性更好。
    • 开发环境:Visual Studio,我习惯用VS2019或VS2022社区版,免费且功能强大。
    • 海康MVS(Machine Vision Suite):这是最重要的,去海康机器人官网下载。安装时,务必勾选“SDK开发包”和“驱动程序”。安装完成后,你会在C:\Program Files (x86)\MVS目录下找到宝藏。
    • Halcon:去MVTec官网下载Halcon,有完整的开发版本和运行时。安装后,记得获取试用许可证或使用正式许可证。

2.2 创建项目与引入关键的“外援”(DLL)

打开Visual Studio,新建一个Windows窗体应用(.NET Framework或.NET Core/.NET 6+都行,我以.NET Framework为例)。项目建好后,第一件事就是请“外援”进场。

  1. 引用海康SDK的DLL:在解决方案资源管理器里,右键你的项目 -> “添加” -> “引用” -> “浏览”。找到海康MVS的安装路径,通常是 C:\Program Files (x86)\MVS\Development\Bin\win64(如果你的项目是64位)。选择 MvCameraControl.Net.dll,点击添加。这里有个坑:如果你的相机是USB3.0接口的,可能还需要同时引用MvUsbCameraControl.Net.dll,具体看SDK文档说明。

  2. 引用Halcon的DLL:同样方式,找到Halcon的安装目录,例如 C:\Program Files\MVTec\HALCON-21.11\bin\dotnet35(对应Halcon 21.11版本,.NET 3.5)。你需要添加 halcondotnet.dll。添加引用后,在代码文件顶部,记得引入命名空间:

    using HalconDotNet;
    using MvCamCtrl.NET;
    

    这就像是给你的代码开了权限,告诉编译器:“我要用这两家的工具了”。

  3. 界面布局:从工具箱拖拽控件到你的Form上。你需要:

    • 一个 PictureBox(命名为 pictureBox1),用于显示海康SDK直接输出的原始图像,方便监控。
    • 一个 HWindowControl(如果工具箱没有,需要先右键工具箱“选择项”,浏览添加Halcon的 HWindowControl DLL),这是Halcon的显示窗口,我们处理后的结果就显示在这里。我把它命名为 hWindowControl1。
    • 几个按钮:Button 用于“打开设备”、“开始采集”、“停止采集”、“显示到Halcon”、“停止Halcon显示”。
    • 一个 Ti
如何利用海康相机SDK和Halcon实现高效视觉检测:从配置到算法优化 本文详细介绍了如何利用海康相机SDK和Halcon实现高效视觉检测系统,从开发环境配置到算法优化。通过海康相机SDK的丰富接口与Halcon强大的视觉算法结合,提升工业检测的精度和效率,适用于智能制造和自动化检测场景。 阅读详情

相关推荐

Qt联合海康威视工业相机采集,在线转Halcon变量并显示

综上所述,通过本文的介绍,我们可以了解到如何利用Qt和海康威视工业相机实现图像采集、在线转换和显示,同时支持多相机、黑白相机和彩色相机。我们可以利用Qt的信号和槽机制实现数据的传递和处理,同时利用多线程的方式,提高程序的运行效率和稳定性。在界面设计上,我们需要考虑不同相机的显示和控制,同时还需要对不同颜色空间、灰度等问题进行处理,以实现一个完整的图像处理系统。首先,我们需要准备一些必要的工具和环境,例如Qt的开发环境、海康威视工业相机的SDK、以及Halco的安装包等。接下来,我们可以开始编写代码了。

lmfivzq的博客 729

海康VisionMaster视觉平台实战指南:模板匹配与标定工具深度解析

本文深度解析海康VisionMaster视觉平台的核心工具。详细介绍了模板匹配工具如何作为工业视觉的“火眼金睛”,实现快速精准的物体定位,并阐述了标定工具如何建立像素与真实世界的坐标转换关系,确保测量精度。文章结合实战经验,分享了工具使用技巧、常见问题解决方案及高阶应用思路,帮助工程师构建稳定高效的机器视觉系统。

weixin_29208327的博客 456

零基础转行机器视觉,应该学halcon,opencv,海康visionmaster,康耐视visionpro哪一个好

零基础转行机器视觉,应该学halcon,opencv,海康visionmaster,康耐视visionpro哪一个好

视觉人机器视觉的博客 1590

机器视觉Halcon不谈图像处理强不强,大家都知道我强,Halcon说:vp,vm吃内存长大的,康耐视visionpro和海康Visionmaster消耗内存为什么比Halcon高那么多

机器视觉Halcon不谈图像处理强不强,大家都知道我强,Halcon说:vp,vm吃内存长大的,康耐视visionpro和海康Visionmaster消耗内存为什么比Halcon高那么多

视觉人机器视觉的博客 766

海康威视相机和Halcon联合使用

本文参考 海康 威视官方例子 首先创建HkCamera.cs 类 using System; using System.Windows.Forms; using HalconDotNet; using MvCamCtrl.NET; using System.Runtime.InteropServices; using System.Threading; namespace VisionS...

Bamboo265925的博客 1万+

《图像处理与计算机视觉》全套课件PDF(武汉工程大学)

获取 《图像处理与计算机视觉》全套课件PDF(武汉工程大学)::https://download.youkuaiyun.com/download/m0_54748666/93260852。《图像处理与计算机视觉》全套课件PDF(武汉工程大学)第二讲-图像及其表达与性质.pdf。第五讲-图像形态学变换.pdf。第四讲-图像数据压缩.pdf。第三讲-图像预处理.pdf。第六讲-图像分割.pdf。第七讲-目标识别.pdf。第一讲-导论.pdf。

m0_54748666的博客 147

国央企创新负责人如何通过平台提升技术需求挖掘与资源配置的精准性?.docx

国央企创新负责人如何通过平台提升技术需求挖掘与资源配置的精准性?

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。

双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)

内容概要:本文系统介绍了双向全桥CLLC谐振变换器的Simulink仿真模型,重点阐述了变频控制、闭环仿真及其与多种电力电子拓扑(如维也纳整流器、DAB变换器、图腾柱PFC等)的联合仿真设计。资源包涵盖2.5kW双向全桥LLC、V2G电动汽车充放电系统、三相PFC、多相交错LLC等多种变换器的仿真案例,并深入展示了三电平VIENNA整流器在双闭环PI控制与SVPWM调制策略下,结合上下电容电压差值补偿实现中点电位平衡的先进控制方法。通过仿真验证,该策略不仅有效维持了800V直流母线电压的稳定,还在动态工况下显著提升了电容电压的均衡度,同时保持了较低的输入电流THD,充分体现了SVPWM与中点平衡控制协同优化的技术优势。; 适合人群:具备电力电子与自动控制理论基础,从事新能源发电、电动汽车、工业电源、微电网等领域的研究生、工程师及科研人员。; 使用场景及目标:① 学习并构建高频谐振变换器(如LLC、CLLC)的Simulink仿真模型,掌握其变频与混合控制策略;② 深入理解并应用中点电位平衡、双闭环PI控制、SVPWM调制等核心技术于VIENNA等三电平变换器中;③ 复现高水平期刊论文中的控制算法,服务于科研项目申报、学术论文撰写或工程产品开发。; 阅读建议:该资源为综合性仿真资料库,建议使用者结合自身研究方向(如电动汽车充电、新能源并网)选择对应案例进行精学,重点关注控制策略的设计逻辑、仿真参数的整定方法以及SVPWM与中点平衡的协同机制,并充分利用附带的计算书和参考文献深化理解,以实现从仿真模型到实际工程应用的顺利转化。

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型(simulink仿真实现)

内容概要:本文提供了“虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型”的Simulink仿真实现方法,系统阐述了如何通过仿真手段研究VSG在电力系统中的动态响应特性,重点聚焦于其惯量与阻尼的自适应控制策略。文中详细说明了模型构建流程,涵盖控制算法设计、参数调节、根轨迹分析等内容,并通过对比不同调节系数下的系统响应,深入探讨了控制参数对系统稳定性与动态性能的影响。该仿真模型有效复现了VSG模拟传统同步发电机惯性与阻尼特性的能力,对于提升新能源并网系统的频率稳定性和抗扰动能力具有重要研究价值。; 适合人群:具备电力系统、自动化或相关领域基础知识,从事新能源并网、微电网控制、电力电子与电力系统仿真研究的研究生、科研人员及工程师。; 使用场景及目标:①用于教学与科研中深入理解虚拟同步发电机的工作原理及其在现代电力系统中的应用;②为新能源发电系统接入电网时的稳定性分析与控制策略设计提供仿真验证平台;③支持对VSG控制参数进行优化,提升系统应对负荷波动和扰动的能力。; 阅读建议:建议读者结合Matlab/Simulink软件动手实践,按照文档结构逐步搭建仿真模型,重点关注控制环路设计与参数整定部分,同时参考提供的代码与仿真结果进行对比分析,以加深对VSG自适应控制机制的理解。

eMMC FFU固件更新实战:从协议解析到设备修复

本文详细解析eMMC FFU固件更新技术,从协议原理到实战操作,涵盖EXT_CSD寄存器操作、命令流状态机解析及专业工具使用指南。通过真实维修案例,展示如何利用FFU机制修复设备故障,并提供高级优化技巧与安全注意事项,是硬件工程师和维修技术人员的实用参考。

weixin_29191761的博客 383

带硬约束的物理信息神经网络(PINN with Hard Constraint)示例及代码

本文以一个案例介绍了带硬约束的物理信息神经网络的原理及实现步骤。

m0_72768523的博客 5359

(篇八)C语言在母串删子串、输入位置截取子串

文章目录一、字符串二、删除指定的字符三、从母串中截取子串四、输入位置截取子串 本篇主要介绍C语言字符串中的相关操作,然后分析两个C语言实例——在母串中指定删除子串、在母串中截取子串 一、字符串 了解C 语言的都知道,C语言中没有字符串类型,所以C语言是用字符串常量、字符指针、字符数组来表示字符串。这些字符串都是以 NULL、’\0’或者ASCII==0来结尾。说白了就是一个个字符组成一串有序序列,...

Viewinfinitely的博客 1512

Qt Android MySql 数据库驱动编译(详细图解步骤)

第一步.先介绍下环境搭建: Qt 版本 5.12.11 下载链接 https://download.qt.io/archive/qt/5.12/5.12.11/qt-opensource-linux-x64-5.12.11.run Ubuntu 18.04.6 LTS 下载链接 JDK版本 1.8.0_191 下载链接https://www.oracle.com/java/technologies/downloads/ Android Studio版本 ...

h a 6 6 6 c k 为 你解决复杂难题! 3382

Qt入门教程【基础控件篇】QLineEdit输入框

QLineEdit输入框

小鱼酱的博客 3263

Arduino ESP32S3开发环境搭建 ------ 在线下载安装包Failed解决方案

本文介绍了Arduino ESP32 S3开发环境搭建的离线解决方案。

张一西的博客 1019

从泛光成像到可寻址扫描:Flash激光雷达的车规级优势与技术演进

Flash激光雷达凭借固态架构优势成为自动驾驶感知技术的重要发展方向。该方案无机械部件,具备抗振动、长寿命等特点,同时CMOS工艺带来显著成本优势。但传统泛光式存在能量弥散问题,难以兼顾大视场和远距离探测。可寻址扫描技术通过分区点亮VCSEL阵列,有效提升局部能量密度,在保持固态可靠性的同时突破性能瓶颈。这种"电子扫描+分区点亮"的混合架构,使Flash激光雷达有望实现大视场、远距离、高可靠和低成本的多重突破,推动自动驾驶技术发展。

致力于lidar应用开发 235

基于PCL的电力线点云提取与分割实现

本文基于PCL库实现电力线点云提取与分割,包含6个核心处理阶段:文件读取与结果文件夹创建、高程滤波分割候选点云、欧式聚类去噪、电力线分段提取、球形邻域搜索补全点云、最终分割与可视化保存。通过PCA计算点云线性特征(阈值0.91)筛选电力线点,采用欧式聚类(容忍度3.0)去除噪点,并针对不同规模聚类差异化设置球形搜索半径(4.0/6.0)补全点云。最终通过欧式聚类分割并可视化带颜色点云。算法对高程滤波阈值、聚类参数等具有敏感性,需根据点云特性调整优化。

weixin_45196569的博客 195

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 若依框架实战:代码生成树形菜单的实现与优化
下一篇: ArcGIS数据裁剪实战:从矢量到栅格的精准范围提取指南
python9snake
博客等级 码龄1天 0粉丝 1724原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值