精华内容
下载资源
问答
  • 那么什么是视觉外观检测系统?外观检测系统的主要功能是什么?接下来,我们承诺为自动化行业提供完整的机器视觉软件解决方案。 什么外观检测系统? 机器视觉系统等同于人眼,其主要功能是使机器识别诸如人的事物...

    随着视觉检外观测系统的逐步完善,其功能变得越来越强大,并逐渐用于工业自动化的生产中。

    那么什么是视觉外观检测系统?外观检测系统的主要功能是什么?接下来,我们承诺为自动化行业提供完整的机器视觉软件解决方案。

    什么是外观检测系统?

    机器视觉系统等同于人眼,其主要功能是使机器识别诸如人的事物并区分诸如人的大脑的事物(可识别物体表面上的缺陷)。这包括定位指导和自动组装,也就是告诉医生如何操作的几个关键项目。机械手从哪里拿东西,放在哪里?

    外观检测系统的主要功能是什么?

    视觉检测系统主要包括缺陷检测,该缺陷检测可检测产品中的各种缺陷,例如尺寸,位置,存在和损坏;作为目标对象的几何形状度量的度量;以及诸如1D代码2的对象的内容。包括识别去辨认。尺寸代码,字符文本等

    过去,仅依靠手工生产的车间必须手动测试和测量产品测试,但是随着时间的流逝,它们往往会变得很累,影响机械测试的准确性和效率,并且需要对产品进行手动操作。触摸时可能会显示产品。缺陷会将有缺陷的产品推向市场,并影响品牌形象和产品之间的区别。

    通过视觉检测系统进行的产品检测不会由于疲劳而影响检测的效率和质量,并且非接触式检测不会损坏产品。在扩大人眼视野的同时,也可以长时间使用。

    转载来自:http://www.0755vc.com/5254.html

    展开全文
  • 外观模式

    千次阅读 2016-09-03 06:53:14
    外观模式: 又称门面模式: 外观Facade为子系统的一组接口提供一个一致界面,使得这组子系统易于使用(通过引入一个新的外观角色降低原系统复杂度,同时降低客户类与子系统的耦合度). 图片来源: 设计模式: 可复用...

    外观模式

    标签 : Java与设计模式


    外观模式: 又称门面模式: 外观Facade为子系统的一组接口提供一个一致界面,使得这组子系统易于使用(通过引入一个新的外观角色降低原系统复杂度,同时降低客户类与子系统的耦合度).

    图片来源: 设计模式: 可复用面向对象软件的基础.


    实现

    案例需求: 租房
    

    有过自己找房租房经历的同学能够体会得到找房是件很痛苦的事, 不光要挨个小区跑而且还要跟(二)房东讨价还价. 于是后来学聪明了, 不再自己挨门挨户的磨嘴皮子, 而是直接找像链家我爱我家这样的房屋中介, 他们手上握有一定的房源, 我们只需付给他们一笔佣金, 他们便可以代我们跟房东讲价, 而且他们大都很专业, 省时间又省钱. 此时房屋中介就是一个外观Facade, 而房屋的出租户就是子系统SubSystem:

    • Facade
      外观类: 知道哪些子系统负责处理请求, 将客户的请求代理给适当的子系统对象:
    public class MediumFacade {
    
        private CuiYuanApartment cuiyuan;
    
        private XiXiApartment xixi;
    
        private XiHuApartment xihu;
    
        public MediumFacade() {
            cuiyuan = new CuiYuanApartment("翠苑小区", 900, 1);
            xixi = new XiXiApartment("西溪花园", 1200, 1);
            xihu = new XiHuApartment("西湖小区", 2600, 1);
        }
    
        public void rentingHouse(double price) {
            // 价钱合适而且有房可组
            if (price >= cuiyuan.getPrice() && cuiyuan.getStatus() != 0) {
                System.out.println("预订" + cuiyuan.getLocation());
                cuiyuan.setStatus(0);
            } else if (price >= xixi.getPrice() && xixi.getStatus() != 0) {
                System.out.println("预订" + xixi.getLocation());
                xixi.setStatus(0);
            } else if (price >= xihu.getPrice() && xihu.getStatus() != 0) {
                System.out.println("预订" + xihu.getLocation());
                xihu.setStatus(0);
            } else {
                System.out.println("出价太低/没有房源 ...");
            }
        }
    }
    • SubSystem
      子系统集合: 实现子系统功能, 处理Facade对象指派的任务(注意子系统内没有任何Facade信息,即没有任何Facade对象引用):
    /**
     * @author jifang
     * @since 16/8/23 上午10:12.
     */
    public class XiHuApartment {
    
        private String location;
    
        private double price;
    
        private int status;
    
        public XiHuApartment(String location, double price, int status) {
            this.location = location;
            this.price = price;
            this.status = status;
        }
    
        public String getLocation() {
            return location;
        }
    
        public double getPrice() {
            return price;
        }
    
        public int getStatus() {
            return status;
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    }
    
    class XiXiApartment {
        private String location;
    
        private double price;
    
        private int status;
    
        public XiXiApartment(String location, double price, int status) {
            this.location = location;
            this.price = price;
            this.status = status;
        }
    
        public String getLocation() {
            return location;
        }
    
        public double getPrice() {
            return price;
        }
    
        public int getStatus() {
            return status;
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    }
    
    class CuiYuanApartment {
    
        private String location;
    
        private double price;
    
        private int status;
    
        public CuiYuanApartment(String location, double price, int status) {
            this.location = location;
            this.price = price;
            this.status = status;
        }
    
        public String getLocation() {
            return location;
        }
    
        public double getPrice() {
            return price;
        }
    
        public int getStatus() {
            return status;
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    }
    • Client
      这样, Client只需跟一个房屋中介联系并给出我们的报价, 他们便会帮我们联系所有符合的房东:
    public class Client {
    
        @Test
        public void client() {
            MediumFacade facade = new MediumFacade();
            facade.rentingHouse(800);
        }
    }

    小结

    有过面向对象开发经验的同学 即使没有听说过外观模式, 也完全有可能使用过他, 因为他完美的体现了依赖倒转原则迪米特法则的思想, 是非常常用的模式之一.

    • 使用

      • 首先 在设计初期, 应该有意识的进行层次分离, 比如经典的三层架构, 层与层之间建立Facade, 这样可以为复杂的子系统提供一个简单的接口, 使耦合度大大降低.
      • 其次 在开发阶段, 子系统往往因为不断的重构而变得越来越复杂, 增加Facade可以提供一个简单的接口, 减少模块间依赖.
      • 第三 在维护一个遗留系统时, 可能这个系统已经非常难以维护和扩展了, 但因为它包含非常重要的功能, 新的需求必须依赖它, 此时可以为新系统开发一个Facade, 为设计粗糙或高复杂度的遗留代码提供一个的比较清晰简单的接口, 让新系统与Facade交互, 而Facade与遗留代码交互所有繁杂的工作.

    展开全文
  • 外貌 SiYuan的外观回购包含主题,图标和多语言配置。 图标:外观图标 langs:多国语言配置 主题:外观主题
  • 屏幕外观设置包括显示桌面、窗口(包括对话框)、图标使用的颜色和字体大小等。默认的情况是WindowsXP样式,用户利用"外观"选项卡可以设置项目的外观。在"显示属性"对话框中单击"外观"标签,弹出"外观"选项卡(...

    出国留学网小编为你整理“2017计算机资格WindowsXP考点屏幕外观设置”哦,介绍了WindowsXP等相关内试题,欢迎广大网友前来学习,希望对你有所帮助!更多资讯关注本网站的更新吧!

    屏幕外观设置包括显示桌面、窗口(包括对话框)、图标使用的颜色和字体大小等。默认的情况是Windows

    XP样式,用户利用"外观"选项卡可以设置项目的外观。

    在"显示属性"对话框中单击"外观"标签,弹出"外观"选项卡

    (1)外观的设置

    1)窗口和按钮:在"外观"选项卡的"窗口和按钮"下拉列表中有"WindowsXP样式"和"Windows经典样式"供选择。

    2)色彩方案:分为"WindowsXP样式"的色彩方案和" Windows经典样式"的色彩方案。

    在"窗口和按钮"下拉列表框中,选择" Windows XP样式"后的色彩方案:橄榄绿、默认(蓝)和银

    在"窗口和按钮"下拉列表框中,选择"Windows经典样式"后的色彩方案:Windows标准、Windows经典等28种方案。

    3)字体大小:分为"Windows XP样式"的字体大小和"Windows经典样式"的字体大小。

    在"窗口和按钮’:下拉列表框中,选择"Windows XP样式"后的字体大小:正常、大字体和特大字体。

    在"窗口和按钮"下拉列表框中,选择"Windows经典样式"后,根据选择"色彩方案"的不同,可供选择的"字体大小"选项不同,一般情况下有"正常"、"特大"和"大"供

    选择,对于某些色彩方案,只有一种字体大小。

    (2)改变屏幕视觉效果

    在"外观"选项卡上,单击"效果"按钮,弹出"效果"对话框。利用"效果"对话框可以设置:

    为菜单和工具提示使用下列过渡效果:淡入淡出效果和滚动效果。

    使用下列方式使屏幕字体的边缘平滑:标准和清晰。

    使用大图标:选择该复选框,可以使桌面上显示大图标。

    在菜单下显示阴影:选择该复选框,可以在菜单下投射出轻微的阴影,赋予菜单三维外观。

    ...

    展开全文
  • C++ 外观模式

    千次阅读 2017-04-27 12:59:21
    外观模式(Facade Pattern)又称为门面模式,属于结构型模式。Façade 为子系统中的一组接口提供了一个统一的高层接口,该接口使得子系统更加容易使用。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 ...

    简述

    外观模式(Facade Pattern)又称为门面模式,属于结构型模式。Façade 为子系统中的一组接口提供了一个统一的高层接口,该接口使得子系统更加容易使用。

    | 版权声明:一去、二三里,未经博主允许不得转载。

    模式结构

    UML 结构图:

    Facade Pattern

    • Facade(外观):模式的核心,被 Client 调用,知晓相关子系统的功能和责任。在正常情况下,它将所有从 Client 发来的请求委派到相应的子系统去,让子系统处理。
    • SubSystem(子系统):可以同时有一个或者多个子系统,子系统可以是一个单独的类或类的集合。每个子系统都可以被 Client 直接调用,或者被 Facade 调用,它处理由 Facade 传过来的请求。子系统并不知道 Facade 的存在,对于子系统而言,Facade 仅仅是另外一个 Client 而已。

    优缺点

    优点:

    • 对 Client 屏蔽子系统组件,减少了 Client 处理的对象数目,并使得子系统使用起来更加容易。通过引入外观模式,Client 的代码将变得很简单,与之关联的对象也很少。
    • 实现了子系统与 Client 之间的松耦合关系,这使得子系统的组件变化不会影响到调用它的 Client,只需要调整 Facade 即可。
    • 降低了大型软件系统中的编译依赖性,并简化了系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。一个子系统的修改对其他子系统没有任何影响,而且子系统内部变化也不会影响到外观对象。
    • 只是提供了一个访问子系统的统一入口,并不影响用户直接使用子系统类。

    缺点:

    • 不能很好地限制 Client 使用子系统类,如果对 Client 访问子系统类做太多的限制,则会减少可变性和灵活性。
    • 在不引入抽象外观类的情况下,增加新的子系统可能需要修改 Facade 或 Client 的源代码,违背了“开闭原则”。

    适用场景

    • 当要为一个复杂子系统提供一个简单接口时。该接口可以满足大多数用户的需求,而且用户也可以越过外观类直接访问子系统。
    • Client 与多个子系统之间存在很大的依赖性。引入外观类将子系统与 Client 以及其他子系统解耦,可以提高子系统的独立性和可移植性。
    • 在层次化结构中,可以使用外观模式定义系统中每一层的入口。层与层之间不直接产生联系,而通过外观类建立联系,降低层之间的耦合度。

    案例分析

    京东 - 多快好省 只为品质生活

    JD

    以前,人们购物需要去超市、百货商店、农贸集市等。网络流行之后,越来越多的人喜欢网购,足不出户便可以淘到很多好东西。

    比起传统模式,网购有很多好处:

    • 方便、快捷,节省时间和费用。
    • 网络信息透明,容易了解卖家信誉度。
    • 网上物品应有尽有,可以非常方便地货比三家。

    除此之外,很多网上商城还不断搞各种活动,双 11、双 12、国庆、元旦、春节,各种花样应有尽有。。。

    像京东、淘宝、亚马逊这些电商平台,客户挑选好喜欢的宝贝,然后进行结算。在随后的过程中,我们并不清楚这些网站背后的情况,所关注的只不过是,下完订单后,将会在一段时间后收货。其实,在幕后,任务被分发给不同的子系统(订单团队、供应商、快递员)去完成,为了方便,可以进行订单跟踪:

    下订单 –> 订单验证 –> 打包 –> 出货 –> 派送 –> 交付

    PS: 说到速度,就不得不夸奖京东了,物流很给力,早上下单,下午送达。。。

    代码实现

    创建子系统

    子系统包含 3 个,订单团队(确认付款、联系供应商)、供应商(确认库存、包装、联系快递)、快递员(分配人员、派送包裹)。

    // sub_system.h
    #ifndef SUB_SYSTEM_H
    #define SUB_SYSTEM_H
    
    #include <iostream>
    #include <string>
    #include <windows.h>
    
    const std::string c_stateToStrCourier[] = { "收到", "验证可达性", "分配人员", "派送包裹", "获取交货确认", "完成" };
    const std::string c_stateToStrVendor[] = { "收到", "确认库存", "从仓库得到物品", "包装", "联系快递员", "完成" };
    const std::string c_stateToStrOrderTeam[] = { "收到", "确认付款", "联系供应商", "完成" };
    const int c_nMsec = 300;  // 休眠时间(毫秒) - Sleep(c_nMsec) 处可以替换为一些有用的代码
    
    // 订单团队
    class OrderTeam
    {
    public:
        void submitRequest() {
            m_nState = 0;
        }
    
        // 检测状态
        bool checkStatus() {
            std::cout << "订单团队 - 当前状态:" << c_stateToStrOrderTeam[m_nState] << std::endl;
    
            Sleep(c_nMsec);
            m_nState++;
    
            return (m_nState == Complete);
        }
    
    private:
        enum States {
            Received,  // 收到
            VerifyPayment,  // 确认付款
            ContactVendor,  // 联系供应商
            Complete  // 完成
        };
        int m_nState;
    };
    
    // 供应商
    class Vendor
    {
    public:
        void submitRequest() {
            m_nState = 0;
        }
    
        // 检测状态
        bool checkStatus() {
            std::cout << "供应商 - 当前状态:" << c_stateToStrVendor[m_nState] << std::endl;
    
            Sleep(c_nMsec);
            m_nState++;
    
            return (m_nState == Complete);
        }
    
    private:
        enum States {
            Received,  // 收到
            VerifyInventory,  // 确认库存
            GetItemFromWareHouse,  // 从仓库得到物品
            PackItem,  // 包装
            ContactCourier,  // 联系快递员
            Complete  // 完成
        };
        int m_nState;
    };
    
    // 快递员
    class Courier
    {
    public:
        // 将请求转发给快递员
        void submitRequest() {
            m_nState = 0;
        }
    
        // 检测状态
        bool checkStatus() {
            std::cout << "快递员 - 当前状态:" << c_stateToStrCourier[m_nState] << std::endl;
    
            Sleep(c_nMsec);
            m_nState++;
    
            return (m_nState == Complete);
        }
    
    private:
        enum States {
            Received,  // 收到
            VerifyReachbility,  // 验证可达性
            AssignPerson,  // 分配人员
            DispatchPackage,  // 派送包裹
            GetDeliveryConfirmation,  // 获取交货确认
            Complete  // 完成
        };
        int m_nState;
    };
    
    #endif // SUB_SYSTEM_H

    创建外观

    用于网上购物的外观,提供了暴露给客户的接口,虽然可以跟踪订单,但仍然隐藏背后的复杂过程。

    // facade.h
    #ifndef FACADE_H
    #define FACADE_H
    
    #include "sub_system.h"
    
    // 网购外观
    class OnlineShoppingFacade
    {
    public:
        OnlineShoppingFacade() {
            m_nCount = 0;
        }
    
        // 返回跟踪次数
        int followupNum() {
            return m_nCount;
        }
    
        // 提交订单
        void submitRequest() {
            m_nState = 0;
        }
    
        // 跟踪订单
        bool checkStatus(){
            // 收到订单请求
            switch (m_nState) {
            case Received:
                m_nState++;
                // 将请求转发给订单团队
                m_order.submitRequest();
                std::cout << "********** 提交给订单团队,跟踪次数:" << m_nCount << " **********" << std::endl;
                break;
            case SubmittedToOrderTeam:
                // 如果订单团队完成验证,则向供应商发出请求
                if (m_order.checkStatus()) {
                    m_nState++;
                    m_vendor.submitRequest();
                    std::cout << "********** 提交给供应商,跟踪次数:" << m_nCount << " **********" << std::endl;
                }
                break;
            case SubmittedToVendor:
                // 如果供应商已将包裹打包,将其转发给快递员
                if (m_vendor.checkStatus()) {
                    m_nState++;
                    m_courier.submitRequest();
                    std::cout << "********** 提交给快递员,跟踪次数:" << m_nCount << " **********" << std::endl;
                }
                break;
            case SubmittedToCourier:
                // 如果包裹交付,订单完成
                if (m_courier.checkStatus())
                    return true;
            default:
                break;
            }
    
            m_nCount++;
    
            // 订单未完成
            return false;
        }
    
    private:
        enum States {
            Received,  // 收到
            SubmittedToOrderTeam,  // 提交给订单团队
            SubmittedToVendor,  // 提交给供应商
            SubmittedToCourier  // 提交给快递员
        };
    
        int m_nState;  // 订单状态
        int m_nCount;  // 跟踪次数
    
        OrderTeam m_order;
        Vendor m_vendor;
        Courier m_courier;
    };
    
    #endif // FACADE_H

    创建客户端

    最终,客户端实现如下:

    // main.cpp
    #include "facade.h"
    
    int main()
    {
        OnlineShoppingFacade facade;
    
        // 提交订单
        facade.submitRequest();
    
        // 跟踪订单,直到订单完成
        while (!facade.checkStatus());
    
        std::cout << "********** 订单完成,跟踪次数:" << facade.followupNum() << " **********" << std::endl;
    
        getchar();
    
        return 0;
    }

    输出如下:

    ********** 提交给订单团队,跟踪次数:0 **********
    订单团队 - 当前状态:收到
    订单团队 - 当前状态:确认付款
    订单团队 - 当前状态:联系供应商
    ********** 提交给供应商,跟踪次数:3 **********
    供应商 - 当前状态:收到
    供应商 - 当前状态:确认库存
    供应商 - 当前状态:从仓库得到物品
    供应商 - 当前状态:包装
    供应商 - 当前状态:联系快递员
    ********** 提交给快递员,跟踪次数:8 **********
    快递员 - 当前状态:收到
    快递员 - 当前状态:验证可达性
    快递员 - 当前状态:分配人员
    快递员 - 当前状态:派送包裹
    快递员 - 当前状态:获取交货确认
    ********** 订单完成,跟踪次数:13 **********

    展开全文
  • 外观模式Facade

    2017-03-04 21:28:02
    什么外观模式呢? 外观模式,实际上有点像肯德基的点餐窗口。我们在需要吃饭的时,只需要在窗口给店员说:我需要饮料和面包,而不用关心后厨如何去从饮料机接饮料、从面包机拿面包等等。“前台”就是我们所定义...
  • 设计模式——外观模式

    千次阅读 2018-04-06 17:33:15
    外观模式,是一种把子系统和客户端做松耦合操作的一个设计模式。这样客户端调用系统,根本不需要知道系统内部是如何操作的,只需要调用外部“接待员”即可...外观模式包含三个角色:外观角色(Facade):是模式的核...
  • 外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。   1. ...
  • JAVA设计模式--外观模式

    万次阅读 2017-02-12 23:37:41
    一、什么外观式 二、外观模式的结构 三、外观模式的适用性 四、外观模式和中介者模式 五、外观模式的优缺点 六、总结 一、什么外观外观(Facade)模式是一种对象的结构型模式。为子系统中的一组接口提供...
  • 外观模式: 外观模式可以为一个子系统中的多个类提供统一的接口,外观模式定义了一个高层次的接口,并使一个子系统更易于使用;把一个组件单元构建成一...子系统的接口是一个抽象类,不包含任何属性和具体的实现,其中
  • 1. 外观模式概述不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要一杯什么样的茶,是铁观音、...
  • 外观模式学习总结

    2019-04-10 10:23:33
    外观模式 引言 定义 模式类图 实例 实例描述 实例类图 代码实现 模式扩展 外观类的数量 抽象外观类 总结 模式优点 模式缺点 外观模式 引言 一般情况下,一个Web网站都会提供一个首页,作为网站的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,627
精华内容 73,850
关键字:

外观包括什么