加载中…
个人资料
超帆越浪
超帆越浪
  • 博客等级:
  • 博客积分:0
  • 博客访问:246,075
  • 关注人气:122
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
个人简介
自动化设备电控系统设计
机器视觉对位贴合系统
机器视觉量测系统
机器视觉检测与识别系统
专注于手机平板,电子制造行业
为用户提供最佳的自动化产品及方案
QQ群:103283847
QQ:272888716
新浪微博
博文
标签:

机器视觉

visionpro

编程

色彩分割

分类: Visionpro

VisionPro:色彩区分

 利用色彩来区分物体这类的项目没做过,总觉得很难,尤其是涉及到RGB和HSI等。看到VisionPro中有这种实例,觉得很有意思。

1)声明变量:

Private mTool as CogColorSegmenterTool

Private mImageFileTool as CogImageFileTool

Private mColorRangesInitialized as Boolean

2) 实例化mTool和mImageFileTool之后,加载图像并显示,接下来就是初始化Color Range并把它们添加到ColorCollection工具中。

 实际区分所有的颜色很难,这里采用CogSimpleColor

Dim defaultColor as CogSimpleColor

defaultColor=new CogSimpleColor(CogImageColorSpaceConstants.RGB)

定义两种黄色

Dim colorRangeYellow1 as CogColorRangeItem

 点击图片或使用键盘← →翻页

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 机器视觉
Dll导出函数的约定由两种:调用约定和名字修饰约定。
1.调用约定决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定。
关键字_stdcll、_cdecl、_fastcall可以直接加载要输出的函数前。
2.C或C 函数在内部(编译或链接)通过修饰名识别,修饰名是编译器在编译函数定义或者原型时生成的字符串。有些情况下使用函数的修饰名是必要的,如在模块定义文件头指定输出C 重载函数、构造/析构函数。又如在汇编代码中调用C或C 函数等,修饰名由函数名、类名、调用约定、返回类型及参数等共同决定。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-05-24 02:06)
如何建立DLL
   初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。
   动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环境的出现,函数库的方法显得过于累赘。如果为了完成屏幕输出、消息处理、内存管理、对话框等操作,每个程序都不得不拥有自己的函数,那么Windows程序将变得非常庞大。Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝。动态链接库就是在这种情况下出现的。动态链接库不用重复编译或链接,一旦装入内存,DLL函数可以被系统中的任何正在运行的应用程序软件所使用,而不必再将DLL函数的另一拷贝装入内存。

   下面我们一步一步来建立一个DLL。
   一、建立一个DLL工程
   新建一个工程,选择Win32 控制台项目(Wi
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-05-19 01:39)
分类: 机器视觉

% imshow
imshow是用来显示图片的,如
>> I = imread('moon.tif');
>> figure,imshow(I);

而有时为了数据处理,要把读取的图片信息转化为更高的精度,
>> I = double(imread('moon.tif'));

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 编程语言
一般的程序对字符串操作,串口程序却时常采用十六进制串。我在本在的社区中看到一位大侠的一个转换算法不错,贴出来和大家贡献。
char ConvertHexChar(char ch);
int String2Hex(CString str, CByteArray &senddata,char*tag);
函数功能:将CString 类型的str转换成CByteArray类型,保存在senddata中,tag是分隔符。
函数原型:
int String2Hex(CString str, CByteArray &senddata,char* tag)
{
 int   hexdata,lowhexdata;  
 int   hexdatalen=0;  
 int   len=str.GetLength();  
 senddata.SetSize(len/2);  
 for(int   i=0;i
 {  
  char   lstr,hstr=str[i];  
  if(!strcmp(hstr,tag)  
  {  
   i ;  
   continue;  
  }  
  i ;  
  i
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-05-13 20:19)
标签:

it

编程

程序

mfc

日期

一、使用MFC的CTime类来得到时间:
CTime必须调用赋值函数,使用其静态函数来初始化
例如:
CTime time=CTime::GetCurrentTime();
这样就可以直接调用time的内部方法得到你想要的当前的时间了。
二、使用MFC的COleDateTime来得到时间:
同上一样,使用MFC 的COleDataTime来处理当前系统的时间也需要首先使用其静态函数来初始化
例如:
COleDataTime time=COleDataTime::GetCurrentTime();
这样之后就可以直接调用time的所有方法了。
针对上面两种MFC的调用方法,MFC帮他们封装好了显示格式的函数,并且能够直接返回CString的格式。同样,也可以自己指定显示格式,具体的显示情况如下%a:显示星期英文的前面几个字母
%A:显示星期的全部英文名称
%b:显示月份英文的前面几个字母
%B:显示月份的全部英文名称
%c:以百分号的形式显示日期时间如:06/02/25/ 01:13:57
%d:显示月份的序号(01 – 31)
%H:显示时间24小时制(00 – 23)
%I:显示时间12小时
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

编程

程序

分类: 编程语言
_beginthread函数解释及实例应用

_beginthread
uintptr_t _beginthread( 
   void( *start_address )( void * ),
   unsigned stack_size,
   void *arglist 
);


Parameters 参数:
start_address:程序执行一个新线程的起始地址
Start address of a routine that begins execution of a new thread. For _beginthread, the calling convention is either __cdecl or __clrcall; for _beginthreadex, it is either __stdcall or __clrcall.

stack_size:新线程的堆栈大小或0
Stack size for a new thread or 0.

Arglist:传给新线程的变量清单或空
Argument list to be passed to a new thread or NULL.


Return Value 返回值:
如果新线程建立成功,函数返回该线程的句柄;然而,如果新线程退出太快,_beginthread
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 编程语言
通常影响程序运行速度的地方,都是在执行次数最多的地方。比如显示一张800*600的256色图形,如果在设置调色板时浪费了0.001秒,那么对整个程序不会有很大影响,因为设置调色板的操作只要作一次就完成,但是每绘出一点要多浪费0.001秒,那么整张图画完就会慢上800*600*0.001 秒,这是一个相当可观的数目。下面介绍一些常用的技巧。

一.尽量使用整数,少用浮点数
  整数运算比浮点数快得多,而在绘图程序中用到小数点的机会实在少之又少,所以这是很容易做到的技巧。

二.避免乘法与除法
  乘法与除法都是相当浪费CPU运算时间的一种运算,所以在绘图程序中应尽量避免,在无法避免时,如果乘除的数目为2次方,例如2、4、8、16等,则可改用左移或右移来取代:

a*2^n-->a<<n 例:a*16-->a<<4
a/2^n-->a>>n 例:a/32-->a>>5

  上式中2^n表示2的n次方。

三.少用求模运算
  求模的运算(%)通常也是用乘除来完成的,
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 随笔

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

mfc

编程

程序

it

分类: 编程语言
SetWindowPos 函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。
函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);
参数:
hWnd:窗口句柄。
hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一:
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2015-11-05 23:37)
标签:

cpu

线程

主频

处理器

intel

分类: 工控技术

一、品牌:

     选择哪家公司的处理器,AMD公司和inter公司的处理器相比较,AMD在三维制作、游戏应用、和视频处理方面突出,inter的处理器在商业应用、多媒体应用、平面设计方面有优势,性能方面,同档次的,

inter公司的整体比AMD公司的有优势,价格方面,AMD公司的肯定便宜,
二、选择散装还是盒装,散装和盒装没有本质区别,质量上是一样的,主要差别是质保时间的长短以及

是否带散热风扇,一般而言,盒装CPU保修期要长一些,通常为三年,而且附带有一台质量比较好的散热

风扇,散装的CPU质保时间一般是一年,不带风扇。

三:主频:

 看我们常说的主频了。主频可以简单理解为CPU运行的速度。它的计算单位是 Ghz(千兆赫)。在相同核心下,主频越高,运算速度自然越快。

四核心数跟线程数

核心表示每一个CPU里面有多少个处理器单元。目前市面上主流的核心有双核和四核。处理器的核

心越多,在同时处理多个任务时的运算能力就越大,比如四核的CPU可以同时对四个进程进行分析和运算

,从而大大提高了电脑的整体运行速度(10年前,当电脑只有单核的时候,四个进程

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有