自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Z's Palace

专注于计算机视觉,用心灵的窗口“照亮”世界

  • 博客(18)
  • 资源 (10)
  • 收藏
  • 关注

原创 C++ API设计—— API特征

APT特征:优质的API应该设计精巧且实用性强,它不仅能带来愉悦的使用体验,且能与各种应用程序完美融合,甚至让使用者感觉不到其存在。问题域建模:对问题域进行很好的抽象。 隐藏实现细节:1)物理隐藏(声明与定义):将内部细节(.cpp)与公有接口(.h)分离,存储在不同的文件中。2)逻辑隐藏(封装):将API的公有接口与其底层实现分离的过程。 最小完备性:若无必要,勿增实体1)不要过度承诺精简AP

2017-06-30 15:05:12 759

原创 C++ API设计—— API简介

APT:提供了对某个问题的抽象,以及客户与解决该问题的软件组件之间进行交互的方式。 API设计上的不同:1)要保证有良好的设计2)精心编写、术语一致且内容全面的文档3)有一套完整的回归测试验证并未改变所需的API行为为什么使用API(代码复用 + 并行开发):1)更健壮的代码2)延长软件寿命3)模块化4)减少代码重复5)易于改变实现6)易于优化避免使用API的几种情况许可证限制功能不匹配缺

2017-06-29 11:42:49 1438

原创 设计模式(行为变化)—— 命令模式

命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。场景还原(过年购票):我们在12306上,单击购票,这是一个请求,12306将这个请求封装为一个对象,在12306还没有上线排队系统时,你买票是这样的:你不停的用鼠标点击12306网站上的购票按钮,直到你买到了票;对于你的每一次点击,服务器都要进行处理,做出响应,告诉你,有没有买到票;这样

2017-06-28 11:39:53 316 2

原创 设计模式(数据结构)—— 组合模式

组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。场景还原(公司组织架构): 上图是一个公司的组织结构图,总部下面有多个子公司,同时总部也有各个部门,子公司下面有多个部门。如果对这样的公司开发一个OA系统,作为程序猿的你,如何设计这个OA系统呢?UML类图阐述: 模式结构:1)Component:为组合中的对象声明接口;在适

2017-06-27 11:33:49 712

原创 设计模式(数据结构)—— 迭代器模式

迭代器模式:提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。场景还原(餐馆合并):煎饼屋和午餐店合并后需要定制一份新的餐单,但由于煎饼屋的原菜单是用链表实现,而午餐点原菜单是用数组实现(他们的定义如下所示),所以打印新餐单的时候需要分别循环遍历原餐单中的菜单项。如果还有第三家餐厅加入,我们还需要第三个循环,意味着要写很多重复代码。解决方法利用迭代器模式。UML类图阐述:

2017-06-26 11:13:01 433

原创 设计模式(状态变化)——状态模式

状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。场景还原(地铁口):地铁入口处,如果你放入正确的地铁票,门就会打开让你通过。在出口处也是验票,如果正确你就可以 ok,否则就不让你通过(如果你动作野蛮,或许会有报警(Alarm))。有限状态自动机(FSM)也是一个典型的状态不同,对输入有不同的响应(状态转移)。通常我们在实现这类系统会使用到很多的 Switch/Case

2017-06-23 11:41:14 450

原创 设计模式(接口隔离)——适配器模式

适配器模式:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。适配器让原本接口不兼容的类可以合作无间。场景还原(电源适配器):买笔记本电脑,买手机时,都有一个电源适配器,电源适配器又叫外置电源,是小型便携式电子设备及电子电器的供电电压变换设备,常见于手机,笔记本电脑上。它的作用是将家里的220V高电压转换成这些电子产品能工作的5V~20V左右稳定的低电压,使它们能正

2017-06-22 11:07:01 422

原创 设计模式(对象性能)——单件模式

单件模式:确保一个类只有一个实例,并提供一个全局访问点。场景还原(巧克力工厂):现代化的巧克力工厂具备计算机控制的巧克力锅炉,锅炉做的事,就是把巧克力和牛奶融在一起,然后送到下一个阶段,以制造成巧克力棒。锅炉控制器常用于防止不好的事情发生,例如,排出500加仑未煮沸的混合物,或者锅炉已经满了还继续放原料,或者锅炉内还没放原料就开始空烧。万一同时有多于一个的巧克力锅炉实例存在,可能发生哪些很糟糕的事

2017-06-21 11:42:17 413

原创 设计模式(对象创建)——创建者模式

创建者模式:使用多个简单的对象一步步构建成一个复杂的对象。场景还原(兰州拉面):某天去吃兰州拉面,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗拉面,一份泡菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的,也许分量和品质有差别。此时我们就可以用建造者模式。客户根据套餐不同,跟收银员点了一份A套餐的拉面,另一名客户同时又点了一份B套餐的拉面。这时收银员把这两个单子转交给后台,其实也就是厨

2017-06-20 11:05:07 301

原创 设计模式(对象创建)——原型模式

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。场景还原(找工作准备简历):假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写一份,然后利用打印设备复印多份即可。如果要修改简历中的某项,那么修改原始的版本就可以了,然后再复印。原始的那份手写

2017-06-19 10:58:13 434

原创 设计模式(对象创建)——抽象工厂模式

抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。场景还原(操作系统的组件):在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winB

2017-06-16 14:11:11 321

原创 设计模式(对象创建)——工厂方法模式

工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。场景还原(披萨订购):Ethan需要从纽约披萨店订购披萨,Joel需要从芝加哥披萨店订购披萨。1)首先,Joel和Ethan需要取得比萨店的实例,Joel需要实例化一个ChicagoPizzaStore,而Ethan需要实例化一个NYPizzaStore.2)有了各自的PizzaStore,

2017-06-15 13:54:33 518

原创 设计模式(单一职责)——桥模式

装饰者模式:让抽象与实现相分离,让两者都能各自变化。模拟毛笔:现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类。而如果使用毛笔的话,只需要3种型号的毛笔,外加5个颜料盒,用3+5=8个类就可以实现15支蜡笔的功能。实际上,蜡笔和毛笔的关键一个区别就在于笔和颜色是否能够分离。即将抽象化(Abstraction)与实

2017-06-14 13:49:04 778

原创 设计模式(单一职责)——装饰者模式

装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。喜欢喝咖啡的朋友们,通常都不会满足于原味。因此,在著名的星巴克,个人觉得一杯咖啡30多,纯粹是去为了装逼?我们会看到大家购买咖啡时,会要求在其中加入各种调料,比如蒸奶、豆浆、摩卡、奶泡……当这么多个性化的需求要被满足,我们不禁好奇它强大的订单系统是如何实现的。难道是设计成下面的鬼样子? 当然不行!!!能

2017-06-13 13:45:36 538 5

原创 设计模式(组件协作)——观察者模式

观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。在目前这个信息爆炸的社会,从客户端到移动端,现在的年轻人更倾向于移动端(IOS工程师和Android工程师最近几年很火),每时每刻都有成百上千万条信息铺面而来,很想关掉所有电子设备,让自己稍微“清净一会儿”,可以猛一抬头,发现自己错过了“很多”,他们在说啥?666???于是乎,只能乖乖的捧

2017-06-12 13:34:21 412

原创 Understanding and Diagnosing Visual Tracking System

1.What is Visual Tracking?motion modelfeature extractorobservation modelmodel updaterensemble post-processor 2.Existing trackersKCF: High-Speed Tracking with KernelizedCorrelation FiltersLarge

2017-06-09 17:58:47 873

原创 设计模式(组件协作)——策略模式

策略模式定义了算法簇,分别封装起来,让它们之间可以互相替代,此模式让算法的变化独立于使用算法的用户。喜欢三国演义的朋友,都对诸葛亮这个神一般的军师赞誉有加。虽然事实上,除了出师表上刻画的鞠躬尽瘁死而后已的形象,小诸的计谋远没有那么的高深莫测,他更大程度上是一个政治家。扯远了,在三国演义中,有这样一段情节:  刘备利用周瑜、曹仁厮杀之际,乘虚袭取了南郡、荆州、襄阳,以后又征服了长沙等四郡。周瑜想

2017-06-09 11:44:00 463

原创 设计模式(组件协作)——模板方法

模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。用我自己的话讲,就是写文章,找到了一个模板,然后对着抄写。标题什么的不允许改变,该怎样就是怎样,具体到某个不同的部分,再自由发挥。再通俗易懂点,哥们儿,你只能遵从这个游戏规则,你翻不出老子的五指山,哇哈哈哈!有没有中宿命论的赶脚,不过,在这个快速消费的时代

2017-06-08 13:55:36 442

windows下检测内存泄漏的脚本,先安装windbg x64

windows下检测内存泄漏的脚本,先安装windbg x64

2023-09-20

MiniTool分区软件

MiniTool分区向导是一款基于Windows操作系统的磁盘分区管理软件。该软件能够在不重启计算机的前提下进行:磁盘拷贝、分区复制、分区合并、分区大小调整、分区移动、变化分区簇大小、分区格式化、分区转换、分区隐藏、动态/基本磁盘互转**等无损操作。

2023-07-19

工业镜头的选择方案

工业镜头选择

2017-07-13

工业相机选型方案

相机选型

2017-07-11

串口通信软件

串口通信软件:虚拟串口软件、串口调试助手、Mscomm控件。

2015-12-10

VS2008下配置Halcon 10

VS2008下配置Halcon 10,库文件,包含文件.

2015-12-09

OCR字符识别

包含基恩士资料,光盘、数码管、喷码以及校正后的OCR

2015-10-08

寻找一维码、二维码

Halcon寻找采集图像中的一维码以及二维码,配有详细的步骤说明。

2015-10-07

划痕、油污、瑕疵检测

划痕、油污、瑕疵检测的经典案例,结合算子的说明,更好的了解其原理。

2015-10-06

Halcon例程总结

通过例子学习Halcon这个视觉库 可以更好的上手 此外这些例子中的方法能给与我们更好的研究思路

2015-08-21

OpenCV打开大恒AVT摄像机

可实现用Opencv回调的方式打开工业摄像机

2015-05-27

hacker成长之道

有关hacker 的文章和资料分享给大家

2015-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除