关于作者

用户名:MVTEC
笔名:MVTEC
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



图象处理和机器视觉

访问统计:
文章个数:21
评论个数:40
留言条数:8




Powered by BlogDriver 2.1

无限精彩的机器视觉世界

 

伴随着计算机技术发展而逐步发展而来的计算机图像处理技术已经逐步走向成熟,虽然在很多领域仍然有非常多的问题要解决,但是将该技术应用在工业自动化领域而诞生出来的机器视觉技术却已经得到了一定规模的应用。建立这个blog主要是想记录机器视觉在中国的发展历程,已经本人在机器视觉检测中的开发心得,更是和同志道友们交流的场所。

文章

图像处理中的汇编优化

如果我们的编程环境是windows,推荐使用microsft 的masm,这是因为gcc 的编译目标文件内部是elf格式,和MASM以及vc采用的coff格式是不同的,

对于集成环境的vc IDE来说,对于不能识别的源文件类型,预留了custom build选项,在里面填上启动编译器的命令行指令就可以了。

好, let's go.

一、内嵌汇编

我们这里只讨论vc 的内嵌汇编。内嵌汇编不再需要使用汇编书写函数定义,结构定义这样的东西,甚至不需要管函数的参数传递及返回值,我们所要作的就是在需要的地方用__asm这个关键字插入汇编代码。在汇编中,可以直接使用局部变量和全局变量,例如

int temp=0;

__asm inc temp

在C函数中,无论是函数传入的参数还是全局变量,默认都是用ebp做偏移量基址来读写的,我们用反汇编的工具例如ollydbg编译出来的C函数,通常会在函数入口附近发现mov ebp,esp。所以,上面这句汇编实际会被编译为inc [ebp+xxx]的形式

另外,出于效率上的考虑,我们应尽量选用eax,ecx,以及edx寄存器。如果想要访问类的成员变量,则应该先将this指针读入到一个寄存器中,然后用偏移量来访问,看下面的例子:

class A{

int member;

void add_one()

{

   __asm {

       mov ecx,this

       inc [ecx]A.member

       }

}

下一节会介绍C++的函数调用规则

- 作者: MVTEC 2008年04月3日, 星期四 17:15  回复(0) |  引用(0) 加入博采

中国机器视觉市场就是菜市场
目前国内的机器视觉怎么看怎么都像是一个乱哄哄的菜市场,各家是使出浑身解数,今天你推智能相机,明天我卖相机光源,可闹来闹去,卖的都还是国外厂家的产品,只有少数那么一两家在图像卡上还算有自己的技术,或许这就是中国入世以后以市场换技术带来的必然结果。从各家国内视觉公司的经营之道不难看出,自主研发耗资过高,并且由于没有技术积累,从头做起简直就是天方夜谭,最快最赚钱也最轻松的就是做代理,卖产品,因此大部分国内的视觉公司无论吹的怎么响,总归还是二道贩子,只是看谁能吆喝的价低,吆喝的够劲,一个乱哄哄的菜市场。

- 作者: MVTEC 2007年09月21日, 星期五 17:01  回复(3) |  引用(0) 加入博采

mvtec halcon 8.0的初步体验

1.       正则表达式的支持。

Halcon  8.0增加了正则表达式的支持,这对于进行字符查找和匹配提供了更多的选择。同时利用正则表达式,可以在OCR中自动修正识别出的字符串。比如\\d{3}[A-Za-z]这样的表达式输入do_ocr_word_mlp,就可以对识别出的字符进行修正,确定其输出的字符串为3个数字加一个字母(大小写都可以)。而以前就需要调用do_ocr_single_class_mlp一个个的去寻找符合要求的字符。

2.       Shape matching的改进

以前版本中的shape matching,对于找寻的目标和模板之间的匹配关系中,有一个是隐含的默认设置,就是目标在row方向和column方向的比例是一致的。所以我们看到在find_shape_model等函数中,其scale只是一个值,在8.0中,增加了find_aniso_shape*的方法,用于找寻在row方向和column方向缩放比例不一致的物体。这个重大改进使得shape matching的适用范围更加广泛。

3.       线程池和全局,局部内存区域的设置

mvtec halcon 8.0开始,并行halcon中开始引入线程池进行自动派发线程的管理,从而通过操作系统内部的线程管理机制来调度并行halcon中的派发线程。在halcon内部的存储管理中,可以将全局和局部内存区域设定为shared,这样就可以通过一个共有的内存区域进行程序内部产生的halcon局部和全局内存变量的申请和释放,有效的提高了程序的运行速度,同时避免了频繁开辟和释放内存带来的系统内存碎片。

- 作者: MVTEC 2007年06月5日, 星期二 14:43  回复(0) |  引用(0) 加入博采

Halcon 8.0中OCR模块的重大改进
Halcon 8.0中,OCR部分增加了SVM的支持。SVM(support vector machine)相比MLP,如果训练集非常大,SVM的优势很明显,从它提供的例子来看,SVM的识别率远高于MLP.同时,本人还发现曾经出现在activVisionTools中 activOCR的两种字符分割方法: local_auto_shape和local_minimum_contrast这次也出现在OCR模块中了。本人分析以前halcon的OCR只提供识别的方法已经过去了,现在的ocr模块从字符的分割和寻找,到不同方法的识别都已经包含了,可以说现在的halcon OCR模块可以是单独的整体了。

- 作者: MVTEC 2007年06月2日, 星期六 12:53  回复(0) |  引用(0) 加入博采

Halcon 8.0隆重发布
看到新的特性,我又一次被mvtec公司的技术实力所折服,在这次推出的8.0中,增加了对于SSE2指令集的halcon优化。同时大量新算子的加入让halcon变的更加强大。

- 作者: MVTEC 2007年06月2日, 星期六 10:23  回复(0) |  引用(0) 加入博采

感谢各位对我的博客的关注

我的QQ是:45107979

msn:sjleeds2002@hotmail.com

希望和大家多多交流,尤其是算法和软件。我现在主要用C++, Visual studio 2003 + wxwidgets,以及python进行编程,用C#做一些辅助工具。

- 作者: MVTEC 2007年02月17日, 星期六 10:10  回复(0) |  引用(0) 加入博采

wxWidgets VS QT

手头上现在有wxwidgets和qt两种framework,现在犯难了,似乎各有各得优点,wxWidgets编译出来的软件要比qt的运行速度快,真是怪事,而qt提供的类库要比前者丰富,开发的时候更加方便,看了几个拥wxwidgets开发的软件,真的是没的说,有kicad这样的大型软件,也有一堆的小软件。另外,wxwidgets的sizer比qt的用起来也方便,记得qt的sizerPolicy的参数都弄的头大。

 思来想去,来还是选择了wxwidgets的吧,纯粹开源,不像qt还搞个QPL,弄得不伦不类的,另外wxwidgets的编程风格太象mfc了,但远比mfc来得方便,强大。

btw:年三十了,还在不停的修改程序,感觉还是很充实的,希望自己在三十岁的时候,一切都顺利吧,算是给自己的祝福了。

- 作者: MVTEC 2007年02月17日, 星期六 09:58  回复(1) |  引用(0) 加入博采

完成halcon扩展包的alpha版本
主要是针对halcon中缺失的部分进行了功能扩展,包括在图像中自动定位字符串,更加稳定的条码检测等。beta版将在明年一月推出。

- 作者: MVTEC 2006年12月21日, 星期四 19:11  回复(0) |  引用(0) 加入博采

Halcon 7.1升级版本7.1.2发布
总体来看,变化不大,主要是提升了几个算子的速度,尤其是var_threshold,这个算子在这个版本中的速度提高了200%,测试结果也表明,对于640X480的图像,var_threshold的速度提高了1.5倍多。顺便提一下,这个算子是我最喜欢的分割算子,它分割结果稳定,而且抗噪声能力极强。

- 作者: MVTEC 2006年12月21日, 星期四 19:10  回复(4) |  引用(0) 加入博采

mvtec 发布 halcon 7.0.4

mvtec公司刚刚发布了halcon 7.0的最新升级包,7.0.4.

在HALCON Library上面的主要改进点包括:

affine_trans_image and affine_trans_image_size,rotate_image 的运行速度提高了200%.相应的与图像缩放的函数的速度也得到了显著提升

dyn_threshold 的速度在linux系统上的速度提高了30%

gray_histo_abs在量化因子不等于1的时候速度显著提升

修改的函数

  • HALCON中原有的tuple类型的变量的长度不再受到原有的不能超过1000000个元素的限制,可以设置成任意长度了.
  • create_ocv_proj现在可以创建无穷多个handles了.
  • disp_arc 现在支持负角度了.
  • (未完待续) 

    - 作者: MVTEC 2006年10月20日, 星期五 11:52  回复(4) |  引用(0) 加入博采