|
用户名:MVTEC 笔名:MVTEC 地区: 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
伴随着计算机技术发展而逐步发展而来的计算机图像处理技术已经逐步走向成熟,虽然在很多领域仍然有非常多的问题要解决,但是将该技术应用在工业自动化领域而诞生出来的机器视觉技术却已经得到了一定规模的应用。建立这个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 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局部和全局内存变量的申请和释放,有效的提高了程序的运行速度,同时避免了频繁开辟和释放内存带来的系统内存碎片。
Halcon 8.0中OCR模块的重大改进
Halcon 8.0隆重发布
感谢各位对我的博客的关注
我的QQ是:45107979
msn:sjleeds2002@hotmail.com
希望和大家多多交流,尤其是算法和软件。我现在主要用C++, Visual studio 2003 + wxwidgets,以及python进行编程,用C#做一些辅助工具。
wxWidgets VS QT
手头上现在有wxwidgets和qt两种framework,现在犯难了,似乎各有各得优点,wxWidgets编译出来的软件要比qt的运行速度快,真是怪事,而qt提供的类库要比前者丰富,开发的时候更加方便,看了几个拥wxwidgets开发的软件,真的是没的说,有kicad这样的大型软件,也有一堆的小软件。另外,wxwidgets的sizer比qt的用起来也方便,记得qt的sizerPolicy的参数都弄的头大。
思来想去,来还是选择了wxwidgets的吧,纯粹开源,不像qt还搞个QPL,弄得不伦不类的,另外wxwidgets的编程风格太象mfc了,但远比mfc来得方便,强大。
btw:年三十了,还在不停的修改程序,感觉还是很充实的,希望自己在三十岁的时候,一切都顺利吧,算是给自己的祝福了。
完成halcon扩展包的alpha版本
Halcon 7.1升级版本7.1.2发布
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的时候速度显著提升
修改的函数
(未完待续)