- 博客(36)
- 资源 (3)
- 收藏
- 关注
原创 函数指针,指针函数,指针的指针做函数参数
1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针类型标识符 *函数名(参数表)int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun();float *p;
2012-10-10 12:42:53
700
原创 谈PS-based架构的线扫描(Line-scan)影像检测系统
机械视觉应用在各种产业的生产制造及品质检测已是行之有年, 利用机械视觉可以提升检测精度或加速生产速度,因此逐渐变成许多生产检测设备必备的一环。 目前市面上的影像检测系统大多采用面扫描(Area-scan)的摄影机进行影像的采集及分析, 但是随着产品尺寸的加大(例如:PCB, LCD面板, 晶圆), 在提高产能及精度的要求下, 面扫描摄影机的分辨率及取像速度无法满足这些要求的事实开始浮上枱面
2012-09-22 23:00:45
4830
1
转载 图像处理-基本算法之灰度均衡
灰度均衡就是让分散的灰度值使其均匀化,使尖锐的图像变得柔和。 代码如下:[cpp] view plaincopyprint?/****************************************************************************** * 作用: 灰度均衡函数 * 参数: pDst
2012-06-13 13:02:16
2931
转载 图像处理-基本算法之灰度拉伸
灰度拉伸是图像增强的一种,它是把分离的灰度转换到比较集中的程度,这时就更利于分析。 代码如下:[cpp] view plaincopyprint?/****************************************************************************** * 作用: 灰度均衡函数 *
2012-06-13 13:00:55
10086
转载 图像处理-基本算法之阈值变换
阈值变换在图像处理中有着非常高的作用,很多处理都会用到。最常见的应用就是产生黑白图。 代码如下:[cpp] view plaincopyprint?/******************************************************************************* 作用: 灰度阈值变换函数 *
2012-06-13 12:59:54
2565
转载 图像处理-基本算法之指数变换
指数变换的基本表达式为:y=bc(x-a)-1 其中参数b、c控制曲线形状,参数a控制曲线的左右位置。 指数变换的作用是扩展图像的高灰度级、压缩低灰度级。虽然幂次变换也有这个功能,但是图像经过指数变换后对比度更高,高灰度级也被扩展到了更宽的范围。 代码如下:[cpp] view plaincopyprint?/*****************
2012-06-13 12:58:48
11984
转载 图像处理-基本算法之幂次变换
幂次变换的基本表达式为:y=cxr+b 其中c、r均为正数。与对数变换相同,幂次变换将部分灰度区域映射到更宽的区域中。当r=1时,幂次变换转变为线性变换。 (1) 当r (2) 当r>0时,变换函数曲线在正比函数下方。此时扩展高灰度级,压缩低灰度级,使图像变暗。 代码如下:[cpp] view plaincopyprint?/*
2012-06-13 12:56:45
16179
转载 图像处理-基本算法之对数变换
对数变换实现了图像灰度扩展和压缩的功能。它扩展低灰度值而压缩高灰度值,让图像的灰度分布更加符合人的视觉特征。 代码如下:[cpp] view plaincopyprint?/******************************************************************************* 作用:
2012-06-13 12:55:51
8127
转载 图像处理-基本算法之线性变换
线性变换是灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度从而达到图像增强的目的。 其公式可以表示为y(x, y) = k * x(x, y) + b;其中y(x, y)表示目标像素值,x(x, y)表示源像素值,k表示斜率,b表示截距。 1)当k>1时,可用于增加图像的对比度。图像的像素值在变换后全部增大,整体显示效果被增强。 2)当k=1时
2012-06-13 12:43:30
8099
原创 static用法
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global va
2012-06-06 23:49:33
495
转载 温度测试-利用MFC的串口通信
目次:1.建立项目??2.在项目中插入 MSComm 控件3.利用 ClassWizard 定义 CMSComm 类控制变量4.在对话框中添加控件??5.添加串口事件消息处理函数 OnComm()6.打开和设置串口参数7.发送数据8.发送十六进制字符9.在接收框中以十六进制显示10.如何设置自动发送11.什么是 VARIANT 数据类型?如何使用 VAR
2012-05-30 21:23:36
2628
转载 串口通信(MFC)
1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点);2.在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注
2012-05-30 21:20:57
942
转载 关于Nios II中Verify failed between address 0xxxx and 0xxxx错误的解决
Verifying 000xxxxx ( 0%)Verify failed betweenaddress 0xxxxxx and 0xxxxxx* ]8 q, T L/ t6 C! ILeaving target processor paused1 M+ B, X, S4 }1 X, }3 u 论坛和网络上关于这个问题问的特别多,也是新手常见的一个问题,下面我就这个问题稍微总结
2012-05-30 20:28:51
1966
原创 nios 问题集锦
QUARTUS II版本:9.0FPGA型号:EP2C8Q208配置芯片:EPCS4SDRAM型号: HY57V28820HCT-HFLASH型号 :TE28F320J3前面的一些问题是入门时遇到的,能记得的都列出来了。后面的再遇到什么问题会不断更新……一.SDRAM设置http://blog.sina.com.cn/spflying在Nios II IDE 中下载
2012-05-30 20:27:17
1614
原创 预编译(二)
有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指令设置编译条件,在不同的需要时编译不同的代码。(一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有:1、#if, #
2012-05-29 21:12:03
473
原创 预处理(一)
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏
2012-05-29 20:58:03
644
原创 浅谈I2C总线工作原理与应用
I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发。由于其简单性,如今方泛用于微控制器与各种功能模块的连接,可以说是学单片机的人,入门之后,必定要涉及到的。 I2C 总线实际上已经成为一个国际标准在超过100 种不同的IC 上实现,而且得到超过50 家
2012-05-21 21:38:08
663
转载 位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位
2012-05-09 22:04:43
485
原创 matrox 采集卡
// MilApp.cpp // /*---------------------------------------------本 Demo 以 Cronosplus 采集 CCIR 信号为例。 实现功能:连续采集,单帧抓取,保存图片,显示 注意:1) 请将 MsysAlloc 的第一项参数改成您所使用的板卡类型
2012-04-28 13:34:53
4318
转载 Matrox Imaging Library
-------------------------------------------------------------------Matrox Imaging Library-------------------------------------------------------------------The Matrox Imaging Library (MIL) i
2012-04-28 13:06:55
4165
转载 Matrox Imaging Library
MIL即为Matrox Imaging Library 的缩写,是加拿大Matrox公司提供的图像处理函数库,主要是针对其公司生产的Matrox系列图像采集卡。我使用的是一个Matrox Morphis四通路图像采集卡,需要使用MIL开发自己的视觉系统。几个常用的函数如下: MappAllocDefault();一个默认的配置,Application、System、Digitizer、Di
2012-04-28 12:53:32
12769
3
转载 LPM,参数化的宏功能模块库
LPM(Library Parameterized Modules)即参数化的宏功能模块库。应用这些功能模块库可以大大提高IC设计的效率。LPM标准在1990年被推出,1993年4月,LPM作为电子设计交换格式(EDIF)的附属标准,纳入了电子工业协会(EIA)的临时标准。在MAX+PLUS II 和 Quartus II中调用LPM库函数非常方便,用户既可以在图形输入法中直接调用,也可以在H
2012-04-23 20:47:18
8230
原创 三态门
为了减少信息传输线的数目,大多数计算机中的信息传输线均采用总线形式,即凡要传输的同类信息都走同一组传输线,且信息是分时传送的。在计算机中一般有三组总线,即数据总线、地址总线和控制总线。为防止信息相互干扰,要求凡挂在总线上的寄存器或存储器等,它的传输端不仅能呈现0、1两个信息状态,而且还应能呈现第三种状态——高阻抗状态(又称高阻状态),即此时好像它们的输出被断开,对总线状态不起作用,此时总线可由其它
2012-04-23 20:45:03
2645
原创 LVDS 低电压差分信号
LVDS:Low Voltage Differential Signaling,低电压差分信号。 LVDS传输支持速率一般在155Mbps(大约为77MHZ)以上。 LVDS是一种低摆幅的差分信号技术,它使得信号能在差分PCB线对或平衡电缆上以几百Mbps的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗。 IEEE在两个标准中对LVDS信号进行了定义。ANSI/TIA/E
2012-04-23 20:13:42
1045
原创 Win32 API 多线程编程例程二
例程2 MultiThread2 该线程演示了如何传送一个一个整型的参数到一个线程中,以及如何等待一个线程完成处理。建立一个基于对话框的工程MultiThread2,在对话框IDD_MULTITHREAD2_DIALOG中加入一个编辑框和一个按钮,ID分别是IDC_COUNT,IDC_START ,按钮控件的标题为“开始”;在MultiThread2Dlg.h文件中添加线程函数声明:
2012-04-19 21:49:12
689
原创 Win32 API 多线程编程例程一
例程1 MultiThread1建立一个基于对话框的工程MultiThread1,在对话框IDD_MULTITHREAD1_DIALOG中加入两个按钮和一个编辑框,两个按钮的ID分别是IDC_START,IDC_STOP ,标题分别为“启动”,“停止”,IDC_STOP的属性选中Disabled;编辑框的ID为IDC_TIME ,属性选中Read-only; 在MultiThread
2012-04-19 21:47:58
470
原创 多线程概述
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000);
2012-04-19 21:46:36
357
原创 VC自定义消息的方法
第一步:定义消息。#define WM_MY_MESSAGE (WM_USER+100)第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULTLRESULT Dlg::OnMyMsg(WPARAM wParam, LPARAM lParam){return 0;}第三步:在类头文件的AFX_MSG块中说明消息处理函
2012-04-19 21:42:48
550
原创 调用静态链接库和动态链接库
调用静态链接库静态链接库由.h和.lib文件组成,.h文件在工程中用来声明,而.lib文件包含供外界调用的函数的原型。 VC 6.0中调用静态链接库.lib共3种方法:1.首先使用语句#include "lib.h",并将lib.h拷贝到当前工程目录下; 接着对staticlib_smp.lib使用语句 #pragma comment(lib,"***\\staticlib
2012-04-18 22:14:23
3642
转载 动态链接和静态链接
一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在
2012-04-18 21:30:48
804
原创 结构体中包含函数指针
结构体指针变量的定义,定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct结构体标识符{成员变量列表;…};struct 结构体标识符 *指针变量名;变量初始化一:struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n };形式2:在定义类型的同时定义变量struct结构体标识符{成员变量列表;…
2012-04-12 21:55:01
5031
原创 BCG使用方法
安装 BCGControlBar库到你的计算机: 解压缩 BCGControlBar.zip(比如,到 c:/bcg目录中) 把 c:/bcg/bin增加到你的 path 环境变量中,运行 Visual C++并且打开 Tools| Options对话框,切换到Directories页并且把 c:/bcg/bcgcontrolbar加入到 inc
2012-04-11 22:34:35
1426
转载 NIOS常用函数详解
IO操作函数函数原型:IORD(BASE, REGNUM) 输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏移量为REGNUM的单元里面的值。寄存器的值在地址总线的范围之内。返回值: -函数原型:IOWR(BASE, REGNUM, DATA)输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏
2012-04-10 22:07:17
1481
原创 Quartus II Error 汇总贴
1.Error: Can't configure device. Expected JTAG ID code 0x020820DD for device 1, but found JTAG ID code 0x020830DD.原因及解决办法:Quartus II里的目标器件FPGA与实际开发板上器件FPGA不一致,也就是实际的硬件设备和assignments/device里面所选的器件不一致
2012-04-08 12:23:10
7195
原创 图像平滑
图像处理的方法有两类:空间域方法与频域方法,“空间域”一词是指图像平面自身,这类方法是以对图像的像素的直接处理为基础;“频域”是以修改图像的傅里叶变换为基础的。本文所说的就是针对空间域的。而平滑滤波,顾名思义信号上就是将一个波的毛刺或某一频率以上的部分去掉,简单说就是低通滤波。反应到图像上就是降噪和图像模糊处理(由于高频反应了细节,故而去除细节得到模糊的轮廓),由于图像的边缘一般处于高频部分,
2012-03-31 23:33:39
3263
1
原创 图像锐化
经过平滑算法之后, 图像锐度降低, 降低到一定程度, 就变成了模糊。 今天我们反其道行之, 我们看看锐化是怎么做的。 这里的锐化, 还是的从平滑谈开去。我们先来观察原来的图像和平滑图像的区别:原图 raw 减去模糊图 blur ______________________
2012-03-31 23:13:28
1992
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人