- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 C++无锁队列
C++无锁队列是一种多线程编程技术,它可以在不使用锁的情况下实现线程安全的队列。它可以提高多线程程序的性能。无锁队列的主要思想是让多个线程同时访问队列,而不需要使用锁来保护共享资源。这可以避免锁竞争和死锁等问题,从而提高程序的效率。
2023-05-28 15:39:56
4868
6
原创 C++11 override和final关键字
override关键字用于显示地表明派生类中的成员函数覆盖了基类中的虚函数。当派生类中的函数与基类中的虚函数签名不同或者没有使用override关键字时,编译器会给出警告或错误提示。这样可以避免因为函数签名不同而无法正确覆盖基类中的虚函数,从而导致程序运行时的错误。如果在一个虚函数上使用了final关键字,那么任何派生类都无法再对该函数进行重载。当 final 用于成员函数上时,它表示该函数不能被重写。当 final 用于虚函数上时,它表示该虚函数不能被覆盖。
2023-05-28 15:20:02
1486
原创 通信中间件SOME/IP简述
SOME/IP 不是广义上的中间件,严格的来讲它是一种通信协议,但中间件这个概念太模糊了,所以我们也一般称 SOME/IP 为通信中间件。SOME/IP 全称是 Scalable service-Oriented MiddlewarE over IP。也就是基于 IP 协议的面向服务的可扩展性通信中间件协议。
2023-05-27 18:43:25
2597
原创 C++11强类型枚举
综上所述,虽然强类型枚举在类型安全性等方面具有优势,但在编程复杂度、转换、兼容性和空间占用等方面存在一些缺点。强类型枚举是一种更加类型安全的枚举类型,相对于传统的枚举类型,强类型枚举可以提供更好的安全性和可读性。C++11引入了强类型枚举(enum class),也称为枚举类。
2023-05-27 18:19:08
2659
原创 设计模式之观察者模式
观察者模式(又被称为发布-订阅(Publish/Subscribe)模式)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生变化时,它会通知所有观察者对象,使它们能够自动更新自己。
2023-05-09 21:30:32
851
1
原创 设计模式之策略模式
策略模式(Strategy Pattern)是一种行为型设计模式。它定义了一系列算法,将每个算法都封装起来,并且使它们之间可以替换。策略模式让算法的变化独立于使用算法的客户端,即让算法变化不会影响到使用算法的客户端。这种模式的目的是在运行时根根据不同的情况选择不同的算法或行为。策略模式将一个算法的行为与其它算法分离开来,使它们可以独立地变化和替换。
2023-05-09 21:19:11
586
原创 设计模式之组合模式
组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表现“部分-整体”的层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。组合模式的核心思想是:将单个对象和组合对象放在一个统一的结构中,从而使得客户端能够以一致的方式处理它们。在组合模式中,客户端只需要面向抽象构件编程,而不必关心具体的叶子节点或容器节点的实现细节。
2023-05-09 21:09:16
1058
原创 设计模式之工厂模式
工厂模式是一种常用的设计模式,它主要用来解决对象的创建问题,在不暴露对象创建的细节的同时,为客户端提供统一的接口来创建对象。在工厂模式中,客户端不再需要知道创建对象的具体细节,只需要知道需要什么对象即可。
2023-04-24 20:51:10
452
原创 设计模式类型及原则
设计模式是一种被广泛应用于面向对象编程的设计思想,可以帮助解决软件开发中的一些通用问题。在这个过程中,设计模式的设计原则是指,遵循一些通用的设计准则,以确保我们能够创建出良好的设计,使我们的代码能够具有良好的可维护性、可读性、可扩展性和可重用性。
2023-04-24 20:41:56
400
原创 光源的作用和常见的视觉光源
光源的作用机器视觉系统的核心是图像的采集和处理。所有信息均来源于图像,图像的质量对整个视觉系统极为关键。一幅好的图像可以提高整个系统的稳定性,从而大大降低图像处理算法的难度,同时提高系统的精度和可靠性,合理有效的照明方案尤为重要。一幅好的图像应该具备如下条件1. 对比度:对比度明显,目标与背景的边界对比清晰,要求目标与背景灰度值至少相差30以上;2. 均匀性:要求图片整体亮度均匀,或整体不均匀但灰度差不影响图像处理;3. 真实性:与颜色有关的还需要颜色真实,亮度适中,不过度曝光,过度像素满足精度检
2020-09-11 10:26:25
4341
原创 镜头分类与选型
镜头分类镜头有多种分类方法:按功能分类:定焦镜头、变焦(倍)镜头、定光圈镜头;按用途分类:远心镜头、FA镜头、线扫镜头、微距镜头(或者显微镜头);按视角分类:普通镜头、广角镜头、远摄镜头;按焦距分类:短焦距镜头、中焦距镜头、长焦距镜头。工业应用中,最常用的镜头为定焦镜头和远心镜头。定焦镜头指固定焦距的镜头;远心镜头(Telecentric)主要是为纠正传统镜头的视差而特殊设计的镜头,它在一定的工作距离范围内,所得图像的放大倍率不随工作距离的变化而变化,即被测物在不同工作距离下,所成像的大小相同,
2020-09-11 10:14:09
4227
原创 机器视觉概述
机器视觉系统简介机器视觉顾名思义是使机器具有像人一样的视觉功能,从而实现各种检测、判断、识别、测量、定位等功能。机器视觉可以显著提高生产效率和自动化、智能化程度。一个典型的机器视觉系统包括:光源、镜头、相机、图像处理硬件、图像处理软件、执行单元等。机器视觉综合了光学、机械、电子、计算机软硬件方面的技术,涉及图像处理、模式识别、人工智能、光机电一体化等多个领域。近年来,图像处理和人工智能等技术的快速发展,极大地推动了机器视觉的发展。机器视觉系统工作原理机器视觉系统通过图像采集硬件(相机、镜头、光源等)
2020-09-11 09:52:40
2794
原创 相机尺寸:越小越出色
相机尺寸:越小越出色您是否有时完全无法控制对甜品的渴望? “浓缩的都是精华”不仅适用于美味的甜品,也适用于工业机器视觉的世界: “Sugarcube”(方糖)这一专业术语近年来在行业内变得越来越重要,它代表着视觉技术朝小型化发展的趋势。工业机器视觉中的“Sugarcube”(方糖)这个专业术语是指尺寸为29 mm x 29 mm的小型相机。此尺寸虽未经过正式确认,但已经是实际存在的标准。所谓的“Sugarcube”设计包含入门级和低端主流细分市场中的工业相机,涵括用于医学、交通运输和零售等一系列市场中
2020-09-08 10:06:20
920
原创 ccd工业相机和CMOS工业相机的区别?
ccd工业相机和CMOS工业相机的区别?工业相机按照图像的传感器元件的不同分为CCD(Charge Coupled Device,电荷耦合元件)工业相机和CMOS(金属氧化物半导体元件)工业相机两类,两者的区别如下:1、成像过程不同:CCD仅有一个(或少数几个)输出节点统一输出数据,信号一致性好,而CMOS芯片中每个像素都有自己的信号放大器,各自进行电荷到电压的转换,输出信号的一致性较差,比CCD的信号噪声更多,但是CMOS的一个显著优点是功效较低。2、集成性不同:CCD的制造工艺复杂,输出的只是
2020-09-07 16:28:31
4087
原创 工业相机传输方式有哪些选择?
工业相机传输方式有哪些选择?工业相机常见的有USB2.0,USB3.0,CameraLink,千兆以太网(GigE)四种接口:USB2.0接口:这个优点也就是成本低了,但是速度慢而且不稳定。之前用过2.0接口的相机,在Linux下运动拍摄时,没有规律的就断了,驱动和软件都检查了挺长时间, 后来猜测是端口供电和传输限制之类的问题,果然换个新配的电脑就没问题了。而且也听专业人士说过2.0相机的稳定性问题,静态拍摄应该会好一点。USB 3.0接口:速度快但距离短,理论速度极限大约为500MB/s,但是其传输
2020-09-07 16:27:13
1797
原创 工业相机的各种接口都有哪些利弊
工业相机的各种接口都有哪些利弊工业相机分为模拟相机、数字相机。其中数据传输方式大致有:USB2.0、USB3.0、HDMI、WiFi、1394A、1394B、GIGE千兆网、Camera Link等多种类型的接口。而各种接口都有其利弊。1、USB2.0接口USB2.0接口的工业相机,是目前最为普通的类型。许多厂商都生产此接口的相机。连我们常用的摄像头,也都是USB2.0接口的。其优点是所有电脑都配置有USB2.0接口,方便连接,不需要采集卡;缺点是其传输速率较慢,理论速度只有480Mb(60MB),由
2020-09-07 16:24:18
2652
原创 工业相机千兆网线和USB优劣对比
工业相机千兆网线和USB优劣对比工业相机的连接方式一般有千兆网线和USB两种,那么,它们有什么区别呢,哪一种连接方式更有优势呢?工业相机千兆网线的优势:高数据传输率、现有以太网基础架构可用、较长的传输距离、易于集成、高度标准化(采用GigE Vision标准)、PoE 功能:通过数据线对相机供电。千兆网线工业相机(GigE)可以使用以太网实现供电(PoE),即通过数据线获取电力。而系统装置为了这一工作需要合适的千兆网线材方可实现。此外,还需要安装特殊的 PC 扩展卡或在 PC 和相机之间设置特殊的交换
2020-09-07 16:20:28
6501
2
原创 机器视觉检测
机器视觉检测在各行各业的生产加工过程中,只有符合标准的产品才能作为商品最终在市场上进行销售,传统的产品检测都是依靠人工完成的,速度比较慢且误差较大。而当机器视觉检测系统出现之后,就大大提高了产品检测的效率。那么,这种检测系统有哪些种类?它们又各自有怎样的特点呢?机器视觉检测的最重要的作用就是帮助提高产品质量,降低生产成本,广泛应用于交通行业、药品行业、食品行业、汽车生产制造、印刷业、纺织业等行业当中,主要可以根据以下几种方法进行分类:一、按照功能进行分类,可以划分为产品定位、缺陷检测、尺寸测量;二、
2020-09-07 16:15:08
976
原创 造成工业相机丢帧的原因是什么?
**造成工业相机丢帧的原因是什么?**通常有一些机器视觉工程师认为带有USB接口的工业相机会导致帧丢失。通常,工业相机帧丢失与工业相机使用的传输接口无关,无论是USB,1394,GigE还是CameraLink。设计不良的驱动程序或工业相机硬件是帧丢失的真正原因:设计不良的工业相机会丢帧的原因实际上是数据通道的阻塞,无法及时处理,因此当新图像进入时,前一个可能被迫丢弃,或者新图像被迫丢弃。为了解决这个问题,设计人员需要精确设计驱动器和工业相机硬件数据传输的每个部分。...
2020-09-07 16:05:06
2285
原创 工业相机和普通家用相机有哪些区别?
工业相机和普通家用相机有哪些区别?工业相机和民用相机可能听起来没什么不同,但它们实际上是两个根本不同的相机。1、工业相机性能强劲,稳定可靠,安装方便。相机结构紧凑,不易损坏。它具有很长的工作时间,可以在恶劣的环境中使用。一般数码相机不能这样做。例如,普通家用数码相机不能长时间连续工作,不能连续快速拍摄。没有安装孔,也无法固定在机器上。2、工业相机的快门时间可以很短,曝光可以全局曝光,可以捕捉高速移动的物体。使用机器视觉光源和频闪控制器,快门时间可以设置为微秒,全局曝光可以有效地解决拖影和其他问题。例如
2020-09-07 16:02:17
1101
原创 工业相机及镜头的简单全面介绍
工业相机一. 相机的芯片类型:一般情况下,工业相机按照芯片类型可以分为CCD相机和CMOS相机,当然也有一些其他的芯片,比如富士公司生产的Super CCD芯片。这里我们只讨论市场主流的CCD相机和CMOS相机的工作原理。数码相机的CCD和CMOS都深藏于相机内部,就算您有机会看到它们的样子,也很难进行区分。二. CCD芯片的尺寸表:1.1英寸——靶面尺寸为宽12mm高12mm,对角线17mm1英寸 ——靶面尺寸为宽12.7mm高9.6mm,对角线16mm2/3英寸——靶面尺寸为宽8.8mm高6
2020-09-07 15:26:01
4079
原创 以太网_巨帧数据包
以太网介绍以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3~10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大
2020-09-01 10:36:40
6109
原创 MFC联合Halcon之窗口图片显示
MFC联合Halcon之窗口图片显示具体的方案是:使用一个Picture Control 控件,调用Halcon中的OpenWindow函数,将其参数中的父窗口设为Picture Control 的句柄,就可以在控件内显示我们的照片了,同时要注意缩放一下图片以适应控件大小。MFC程序还是新建一个对话框程序,然后添加一个按钮和一个PictureControl控件,控件的ID默认为IDC_STATIC。正如上一篇中一样,首先在对话框类的头文件和cpp文件中包含halcon的头文件和命名空间#inclu
2020-07-29 08:39:13
1198
2
原创 Halcon快速读取自定义点云TXT文件
1、ReadPointCloudFromTextfile(::Filename:X,Y,Z)open_file(Filename,'input',file)NumColumns := 3VecOutLine.clear()repeatfread_line(file, oneline, IsEOF)if(IsEOF == 1) break endifif(oneline == ' ') continueendiftuple_str_first_n (one
2020-07-19 16:37:09
2035
1
原创 VS和Halcon中变量之间的转换
VS和Halcon中变量之间的转换// HTuple→VS 数据类型转换HTuple hTuple = 1234;int i = hTuple[0].I(); // i=1234long l = hTuple[0].L(); // l=1234long lNumber = hTuple.Num(); // lNumber=1,数据个数double d = hTuple[0].D();
2020-07-14 15:12:38
650
原创 Halcon窗口和MFC中的picture控件相关联显示图片
Halcon窗口和MFC中的picture控件相关联1、在xxxxxDlg.h头文件中定义三个成员变量public:Hobject m_Image; //图像HTuple m_hWindowHandle; //显示图形窗口句柄Hobject m_objDisp; //用于显示图形的对象2、在xxxxxDlg的初始化函数OnInitDialog()后面添加如下//picture控件初始化****************************************************
2020-07-13 14:41:20
769
4
原创 Halcon中将内容显示到窗口特定位置
1、使用:disp_message算子,但是HALCON13中似乎不能用了2、使用:set_tposition (WindowHandle, Row[index], Column[index])//确定绘制点作为绘制开始区域的左上角write_string (WindowHandle, Row[index]+’,’+ Column[index])//绘制文字...
2020-07-10 10:55:18
2647
原创 Halcon之图像处理基本流程
图像处理的基本思路如下:一、获取图像(获取信息)二、预处理三、分割图像四、形态学处理五、特征提取六、输出结果1、图像采集主要是考虑光源、相机、镜头的选择,目的是使图像清晰可见。光源根据打光位置的不同分为背光和底光;根据可见性分为课件光源和不可见光源。2、预处理滤波 中值滤波:中心点值,去掉椒盐噪声 均值滤波:平均值 高斯滤波:加权均值 模板滤波:差值、灰度 线性变换:函数 预处理主要是从两方面进行:提高对比度、去噪。提高对比度的
2020-07-08 18:12:32
2779
原创 HALCON【缺陷检测】
1.缺陷分类:边缘凹凸、毛刺内部污点、内部凹凸、特定空洞、破损划痕(一般用低角度环形光和同轴光源)凸点一般用带角度的光源斜着打,背景打亮,凸点打暗。凹点一般用平行光从上往下打,背景打亮,凹点打暗。2.缺陷处理的方式:Blob+区域特征:cheak_blister.hdev(检测胶囊缺失和错误)Blob+区域特征+差分:fin.hdev(边缘凸起的检测)频域+空间域光度立体法特征训练(分类器、深度学习)、OCV光学字符检测测量+拟合:fit_rectangle2_contour_xld
2020-07-07 17:57:22
5082
原创 CFileFind//CFile——判定表格文件是否存在,不存在则创建表格文件并且加入表格表头
**CFileFind和CFile的使用**本文章为,判定文件是否存在. 不存在则会创建指定目录的文件。同时,文件创建是会写入表格的表头。FindFile()查找指定目录是否存在并且返回CString strFileNameCorrectData;SYSTEMTIME sysLocaltime;GetLocalTime(&sysLocaltime);strFileNameCorrectData.Format(_T("D:\\SrcData_OK_NG\\%04i-%02i-%02
2020-07-07 13:38:29
668
原创 OpenCV框架介绍
OpenCV框架介绍概述OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算机视觉库。从开发之日起就得到了迅猛发展,获得了众多公司和业界大牛的鼎力支持与贡献,因为是BSD开源许可,因此可以免费应用在科研和商业应用领域。历史OpenCV从立项之日起到现在不过短短的十几年时间,已经席卷整个业界,得到众多著名企业的大力支持,其中包括大名鼎鼎机器人公司Willow Garage与搜索引擎起家的
2020-07-02 10:01:54
1425
原创 Halcon介绍
halcon1、HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,它节约了产品成本,缩短了软件开发周期。 Halcon:底层功能算法多,运算性能快,开发需要一定软件功底和图像处理理论。 快速学习做法:研究实例、做实战项目。halcon不能提供相应的界面编程需求,需要和vs来构造MFC界面或者QT使用,才能构成一套完整软件。 2、需求主要有二维三维 二维:(1)识别定位;(2)OCR识别;(3)二维码识别;(4)测量;(5)缺陷检测;(6)机器控制等 三维:(1)多目
2020-06-28 15:44:31
16657
原创 Halcon与OpenCV的介绍及比较
**Halcon与OpenCV的介绍及比较**Halcon在工业视觉领域属于经常使用的软件,相对于opencv的开源精神Halcon属于商业非开源项目并且收费。Halcon起源于德国在国内的工业视觉领域市场占用率遥遥领先,在国内市场份额处于第一。,其提供了1500个多个API算子供开发人员使用。其调试也是很方便的,断点单步运行,图像变化随时可以看到。Halcon算子可以被C++,VB,C#,Delphi等开发语言调用,同时算子也提供COM版,原则上,支持COM的所有语言都是可以调用Halcon算子的
2020-06-28 15:21:10
9918
转载 机器视觉软件
**机器视觉软件**关于机器视觉,下面给大家说说机器视觉软件有哪些?中国机器视觉公司排名,以供大家参考了解。什么是机器视觉?机器视觉是一项综合技术,包括图像处理、机械工程技术、控制、电光源照明、光学成像、传感器、模拟与数字视频技术、计算机软硬件技术(图像增强和分析算法、图像卡、I/O卡等)。一个典型的机器视觉应用系统包括图像捕捉、光源系统、图像数字化模块、数字图像处理模块、智能判断决策模块和机械控制执行模块。机器视觉系统最基本的特点就是提高生产的灵活性和自动化程度。在一些不适于人工作业的危险工作
2020-06-28 15:01:46
2024
原创 MFC 中改变List Control控件字体的大小及清空文本的方式
MFC 中改变List Control控件字体的大小LOGFONT logfont;//最好弄成类成员,全局变量,静态成员CFont *pfont1 = m_List.GetFont();pfont1->GetLogFont( &logfont );logfont.lfHeight =logfont.lfHeight * 3; //这里可以修改字体的高比例logfont.lfWidth = logfont.lfWidth *
2020-06-28 13:39:04
1856
原创 设置MFC中的ListCtrl控件的列宽固定不可变
设置MFC中的ListCtrl控件的列宽固定不可变通过重写虚函数OnNotify实现,OnNotify函数是CListCtrl类中的虚函数,通过重载该函数,来修改ListCtrl控件的一些属性。具体方法:在控件对应的 .cpp文件中://禁止控件列宽可变BOOL XXXXXXX::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult){HD_NOTIFY pHDN = (HD_NOTIFY)lParam;switch
2020-06-28 11:49:20
1745
2
ChartCtrl.rar
2020-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅