- 博客(52)
- 资源 (15)
- 收藏
- 关注
转载 HALCON机器视觉图像处理软件之应用三
匹配基于灰度值的匹配 HALCON的基于灰度值的匹配有多种方法,例如,基于互相关系数的匹配。该方法对聚焦不准、变形和纹理变化具有很强的鲁棒性。基于形状的匹配 即使目标已经旋转、缩放、部分遮挡或者照明有非线性变化,HALCON出众的亚像素精度匹配技术可实时地有效、准确地找到目标。它可以处理8位或16位图像以及彩色或多通道图像。可以使用图像或CAD数据创建目标对象的模板。基于组
2015-04-22 22:16:16
5178
转载 基于HALCON的模板匹配方法总结
很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间。去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇《基于HDevelop的形状匹配算法参数的优化研究》文章,总结了在形状匹配过程中哪些参数影响到模板的搜索和匹配,又如何来协调这些参数来加快匹配过程,提高匹配的精度,这篇paper放到了中国论文在线了,需
2015-03-08 23:30:15
1017
翻译 VC6.0和VS2010工程大小区别
编译器,如果你的机器配置还可以那就建议用最新的吧,编程这个东西一定要跟的上时代。至于为什么工程会这么大,先说VC6,一般源代码只有几十K或者几百K,但VC6编译完后就可能会变成几十M,原因就是编译过程中会在Debug目录或者Release目录下生成大量的目标文件、连接文件或者调试信息的中间文件,这些文件都是很大的。如果想让工程目录小一些,可以将Debug和Release目录下处理.exe(或.d
2014-11-21 00:05:47
1081
转载 AfxEnableControlContainer()
要想在应用程序中使用ActiveX控件,必须使你的应用程序成为ActiveX控件包容器。ActiveX 控件包容器就是完全支持ActiveX控件,并能把控件组合进自己的窗口或对话框的父应用程序。利用MFC的AppWizard,你可以很方便地创建你的包容器程序。事实上,在用AppWizard创建新的应用程序时,你的应用程序就被缺省设置为控件包容器,即在第3步选中支持ActiveX Con
2014-11-20 21:59:12
752
原创 XXX.rc目录提示“Opened in another editor”无法打开Resource View,怎么办呢?
其实是我们打开了资源文件比如 *.bmp 什么的, 你又开了许多*.cpp 文件 ,这时*.bmp就给隐藏了结果就报 这个错你把 所有*.cpp 文件都关掉, *.bmp就冒出来了,关了它 就一切OK
2014-11-20 20:34:36
1438
转载 already defined in *.obj
造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int g_Test,那么
2014-11-19 13:52:03
554
转载 字符型减'0'可以得到整数型”的原因分析
我们如果对c语言里数据是如何存储的不清楚的话,就会导致我们对程序的理解越来越困难。说白了c语言就是人与机器交流的一种规则,而机器和芯片能明白的只能是0和1这两种高低电平。他们什么也不懂。只是一堆模拟电子和数字电路板集合。那人们怎么会操作这些破玩意儿呢?刚开始人们真的是010101的通过打孔来操作的。后来,人们学聪明了有了汇编又有了c语言、c++、java等等工具。其实每一个语言体系只是一些操作机器
2014-11-18 20:41:04
499
转载 TRACE 的信息是显示在OutPut窗口中的
MFC提供了一个小工具Tracer.exe来帮助调试Windows-Based的程序,Tracer可以在Output或Console窗口中显示MFC Library的内部操作信息,以及应用程序的Warning和Error消息,你可以按照需要来查看它们。Tracer可以经常对所出现的问题发出警告,并可以提供错误的详细解释。OutPut窗口是指在调试运行状态下,Visual Studio最下方
2014-11-14 11:47:55
2402
翻译 C++ 基类指针指向派生对象/派生类指针指向基类对象
源程序:#include class A{public: virtual void F1() { cout<<"A1"<<endl; } void F2() { cout<<"A2"<<endl; }};class B :public A{public: void F1() { cout<<"B1"<<endl; } void F2() {
2014-10-19 20:26:08
2870
原创 类成员函数的重载、覆盖与隐藏
基类和派生类类成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。
2014-10-19 19:58:07
493
原创 指针和数组为形参的理解
#include#include#include#define NUMBER 10 //NUMBER为数组的大小 void bubbleSort(int [],int);void display(int [],int);int main(){ int *num=(int*)malloc(NUMBER*4); int randValue = 0; int i,tem
2014-10-12 22:40:11
855
原创 二级指针**P
首先理解几个概念:1.对于一个普通变量,进行引用操作,得到的是一级指针。如int a=0;int *p=&a,则&a就是一级指针。因为&a的值就是a的地址,p的值也是a的地址,则&a和p就是一级指针变量(简略为指针),对&a进行解引用操作,int b=*&a;这b等于0.2.对于普通变量作为形参传递到函数内部,参数的值传递就意味着只是简单的将变量的值copy了一份到临时变量中,然后将临时变
2014-10-12 21:36:01
9670
7
转载 理解SetMapMode,SetWindowOrg,SetViewportOrg,SetWindowExt,SetViewportExt
CDC::SetMapMode virtual int SetMapMode( int nMapMode );函数功能描述:该函数设置指定设备环境的映射方式,映射方式定义了将逻辑单位转换为设备单位的度量单位,并定义了设备的X、Y轴的方向。nMapMode:指定新的映射方式,此参数可以是下面列出的任何一个值。 MM_ANISOTROPIC:逻辑单位转换成具有任意比例
2014-08-29 17:26:00
844
转载 C++命名规则2
浅谈C++变量命名规则 不知道别的公司如何,反正我现在的公司对变量命名并没有一定的规范,唯一要求就是能简单易懂,但是,我想,这个多个程序员,大概每个人都有自己习惯的一套 命名规则吧,不过,要是并不通用的话,大概看别人的程序会很头疼吧,SO 为了别人看偶的程序不至于太头疼,偶决定找个通俗的命名法来参考下,于是,搜到了匈牙利命名法。。。匈牙利命名法的来历和介绍分类:C Plus Plus
2014-08-20 13:19:15
495
转载 Halcon—Tuple中符号的含义
实例一(3d_coordinates.hdev):for I := 1 to NumImages by 1read_image (Image, 'calib/calib-3d-coord-'+I$'02d')——C:\Program Files\MVTec\HALCON-10.0\images\的calib文件夹中开头是calib-3d-coord-的图像。I$'02d'表示后面的
2014-08-08 21:20:30
12297
1
转载 Halcon入摄像机标定初始参数解释
1、摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系。其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为Pc = RPw + T式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α(也可以从左像右看把它理解为先绕x轴旋转α,再绕旋转后的坐标系的y轴旋转β,最后绕
2014-08-08 20:26:49
8130
转载 HalconVC异常处理
在programmer_guide的pdf文件里面提及到了error_handling下图是部分异常处理的声明第一种、面向对象的方法( Error handling using HException and try/catch)在C:\Users\Public\Documents\MVTec\HALCON-10.0\examples\cpp\source可以找到ex
2014-08-08 20:22:25
1832
原创 the win16 subsystem was unable to enter protected mode,DOSX.EXE must be in your AUTOEXEC.NT and pres
若安装软件(vc6)是出现the win16 subsystem was unable to enter protected mode,DOSX.EXE must be in your AUTOEXEC.NT and present in your PATH错误时,
2014-07-23 23:00:44
3045
原创 对vc6.0平台运行Debug的程序出现:应用程序无法正常启动(0xc0150002).请单击“确定”关闭应用程序
其实这个错误出现时一头雾水,
2014-07-23 22:53:49
1761
转载 高斯滤波理解
一、前言:关于高斯滤波在我的前一篇文章《数字图像基本处理算法》中有所谈及那篇只是介绍了高斯滤波的应用,现在这一篇将着重简介高斯滤波的原理和应用,一探个究竟!二、啥是高斯滤波?好吃么? 高斯滤波,说白了就是一个函数来对输入的信号(其实这里的信号就是图像的像素值)进行计算然后得出结果作为该信号的值,只不过函数是高斯函数而已,就是这么简单。那么高斯函
2014-07-07 11:37:22
3612
转载 lib和dll文件的区别和联系
什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37) (1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是
2014-07-05 21:46:08
409
转载 结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于: 若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n;若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;其实就相当
2014-06-12 10:55:17
1207
转载 频率域上的图像增强
http://download1.youkuaiyun.com/down3/20070617/17204050839.rar本人同意他人对我的文章引用,但请在引用时注明出处,谢谢.作者:蒋志强相应的PDF文档及可执行程序可以在http://download.youkuaiyun.com/source/190027下载1频率图像增强的简介1.1背景介绍:在数字图像处理中,图像最直观的
2014-04-16 22:53:36
6119
转载 图像处理的傅里叶变换
听着歌看到好文章,没想到总结得通俗易懂且非常有用,于是暗爽起来,留下来。。。。。。“在时域内对图像作均值滤波就等效于在频域内对图像用均值模板的频域响应对图像的频域响应作一个低通滤波。”这话晃的我头晕,写这么长也不用个标点,幸好定睛一看道理很简单明了。 傅立叶变换在图像处理中有非常非常的作用。因为不仅傅立叶分析涉及图像处理的很多方面,傅立叶的改进算法,比如离散余弦变换,gab
2014-04-16 21:11:07
1522
转载 halcon学习笔记——机器视觉工程应用的开发思路
机器视觉工程应用主要可划分为硬件和软件两大部分。硬件:工程应用的第一步就是硬件选型。硬件选型很关键,因为它是你后面工作的基础。主要是光源、工业相机和镜头选择。软件:目前业内商业库主要有Halcon,康耐视,DALSA,evision,NI等,开源库有OpenCV.其中NI的labview+vision模块。机器视觉工程应用的基本开发思路是:一、图像采集,二、
2014-04-04 16:16:09
1161
原创 异步和同步
通常情况下,当我们抓取帧的时候是从一个连续的视频流序列中去抓取一个或者多个视频帧。尽管近来有许多的专业设备使用数字信号,但大多数情况下,视频信号是模拟信号(analog)。最常见的模拟视频格式是NTSC: 640 × 480 pixel, 30 frames per second andPAL: 768 × 576 pixel, 25 frames per seco
2014-04-03 23:06:16
1831
原创 标定算子
1.create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)创建一个标定(数据)模型CalibSetup:标定类型NumCameras:相机数目NumCalibObjects:图片中标定板个数CalibDataID:标定模型句柄(标示符)2.set_ca
2014-04-03 21:02:57
940
转载 摄像机标定
1、摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系。其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α。6个参数
2014-04-03 20:47:19
1057
转载 利用GetPrivateProfileString读取配置文件(.ini)
配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAp
2014-03-21 23:14:07
556
转载 Windows编程命名规则
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则。 属性部分 全局变量 g_ const常量 c_ c++类成员变量 m_ 静态
2014-03-21 17:01:10
613
转载 《SQL Server 2005 编程入门经典》学习笔记
第一章 RDBMS基础:SQL Server数据库构成数据库中的对象数据库管理系统中包含许多对象。对于SQL Server,它常包含以下重要的数据库对象:数据库 索引 事务日志 程序集 表 报表 文件集 全文本目录 图表 用户自定义数据类型 视图 角色 存储过程 用户 用户自定义函数 SQL Server的4个系统数据库在给定的SQL Server中,数据库实际
2014-03-03 18:01:12
2078
转载 MFC关于Radio按钮的操作
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButto
2014-02-28 10:46:26
515
原创 WIN_静态库与动态库
WIN_静态库与动态库的加载 一. 静态库包括.lib和.h文件,在工程中使用静态库分为3步: 在工程中加入静态库,有两种方法: **方法一:项目设置中引用.lib,project-> setting-> link-> object/library modules中添加.lib;(需要在tools/options设置正确的引用路径) **方法二
2014-02-26 20:57:14
618
转载 CBitmapButton实现图形按钮
在编程中,经常要用到按钮控件,大部分情况下,文字按钮就OK了,但有时为了更好的效果,需要用到图形按钮。在MFC中,应用CBitmapButton就可以实现图形按钮。CBitmapButton类继承自CButton类。你可以为图形按钮指定四张图片,分别对应按钮的四种不同状态:正常显示(Up),鼠标按下(Down),获得焦点(Focused),不可用(Disabled)。正常显示(Up)状
2014-02-11 19:00:12
666
转载 VC6.0 error LNK2001: unresolved external symbol _main解决办法
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unre
2014-02-08 19:22:25
551
原创 VC++文件路径和文件名处理函数
路径截断与合并函数 GetModuleFileName得到模块路径名PathRemoveArgs去除路径的参数PathRemoveBackslash去除路径最后的反斜杠“\”PathAddBackslash 在路径最后加上反斜杠“\”Pat
2014-02-08 17:41:14
3624
原创 bool和BOOL的区别
一、 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和非0的区别 BOOL取值FALSE和TRUE,是0和1的区别 二: bool是标准C++数据类型,可取值true和false。单独占一个字节,
2014-02-08 16:28:00
618
原创 C++标准库
http://www.cplusplus.com/reference/http://baike.baidu.com/link?url=EXAh-vrMYlYLiDUoOQOOQS2tdf983ZlKtgViB1xzgOLW0hXdvMkc4j9Oe2abRg5tenhOXzjWOqoMhwVBWGyoI_1简介2C++标准库▪
2014-01-25 16:14:21
499
转载 using namespace std(2)
在标准C++以前,都是用#include这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来C标准库的头文件也重新命名,如原来的string.h就
2014-01-25 15:42:30
513
TypingMaster.Pro.v7.0.1.794破解版
2014-08-21
豆丁网下载器
2014-01-25
Source Insight3.5
2014-01-25
Linux命令大全(Linuxidc.com修改版)
2013-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人