RabbIT

matlab练习程序(点云表面法向量)

帅比萌擦擦* 提交于 2021-01-07 02:25:45
思路还是很容易想到的: 1.首先使用KD树寻找当前点邻域的N个点,这里取了10个,直接调用了vlfeat。 2.用最小二乘估计当前邻域点组成的平面,得到法向量。 3.根据当前邻域点平均值确定邻域质心,通常质心会在弯曲表面的内部,反方向即为法线方向。 vlfeat在这里下载 , 配置参考这里 ,rabbit.pcd 下载地址 处理效果如下: 原始点云: 点云表面法向量,做了降采样处理: 兔子果断变刺猬。 matlab代码如下: clear all; close all; clc; warning off; pc = pcread( ' rabbit.pcd ' ); pc =pcdownsample(pc, ' random ' , 0.3 ); % 0.3 倍降采样 pcshow(pc); pc_point = pc.Location ' ; %得到点云数据 kdtree = vl_kdtreebuild(pc_point); %使用vlfeat建立kdtree normE = []; for i= 1 :length(pc_point) p_cur = pc_point(:,i); [index, distance] = vl_kdtreequery(kdtree, pc_point, p_cur, ' NumNeighbors ' , 10 ); %寻找当前点最近的10个点 p

三十六、Linux 线程——线程基本概念及线程的创建和终止

北慕城南 提交于 2020-12-26 01:04:52
36.1 线程介绍 36.1.1 线程的基本概念 进程是资源管理的最小单位,线程是程序执行的最小单位 每个进程都有自己的数据段、代码段和堆栈段。 线程通常叫做轻型的进程,它包含独立的栈和 CPU 寄存器状态,线程是进程的一条执行路径,每个线程共享其所附属进程的所有资源,包括打开的文件、内存页面、信号标识及动态分配的内存等。 因为线程和进程比起来很小,所以相对来说,线程花费更少的 CPU 资源 在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持多处理器,并且减少进程上下文切换的开销。 36.1.2 进程和线程的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一用户内存空间,当进程退出时,该进程所产生的线程都会被强制退出并清除。 一个进程至少需要一个线程作为它的指令执行,进程管理着资源(比如 CPU、内存、文件等等),并将线程分配到某个 CPU 上执行    36.1.3 线程分类 线程按照其调度者可分为用户级线程和内核级线程两种: 用户级线程:主要解决的是上下文切换的问题,其调度过程由用户决定 内核级线程:由内核调度机制实现 现在大多数操作系统都采用用户级线程和内核级线程并存的方法 用户级线程要绑定内核级线程运行,一个进程中的内核级线程会分配到固定的时间片,用户级线程分配的时间片以内核级线程为准 默认情况下,用户级线程和内核级线程是一对一

实验六

房东的猫 提交于 2020-12-24 08:37:07
1.编程实现:输入两个英文名字串,比较两个串的串长和串的大小,按要求输出结果。(比如,输入的两个名字串:Tom 与 Charli,输出结果为: 较长的串是 Charli, 较大的串是:Tom) 2.编程实现:输入一个长串 str1(比如“my heart will go on”),再输入一个短串str2(比如“ear”),判断在长串中是否有短串,比输出结果(按以上的情况查询,输出结果是在 str1 中有 str2) 3.编程实现:输入一行英文句子,按空格分出若干个单词,每一行只输出一个单词。 4.编写程序:输入一个字符串,分别统计字符串中大写字母和小写字母的个数。例如,给字符串 SS 输入:AaaaBBb123CCccccd,则输出结果应为:upper=5,lower=9. 5.编写程序:输入一个字符串(比如“abccdfefdf”),输入一个字符(比如‘d’),在串中查找并删除该字符; (1)若没找到,就输出提示信息“未找到此字符” (2)若找到,则提示“找到此字符,要删除吗?”,等待用户输入回答,若回答‘Y’则将其删除后并输出串,比如上结果为:abccfeff 6.编写程序找出一组单词中最小单词和最大单词。用户输入单词后,程序根据字典顺序决定排在最前面和最后面的单词。当用户输入 4 个字母的单词时,程序停止读入。假设所有单词都不超过 20 个字母。程序会话如下: Enter

python3之rabbitMQ

依然范特西╮ 提交于 2020-12-18 06:42:02
1、RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。 MQ全称为Message Queue, 消息队列 (MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如 远程过程调用 的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。 消息队列技术是分布式应用间交换信息的一种技术;消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走;通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 MQ主要作用是接受和转发消息。 你可以想想在生活中的一种场景

RabbitMQ使用分析和高可用集群搭建

落花浮王杯 提交于 2020-12-16 10:40:04
一、RabbitMQ 基础理解 RabbitMQ,是一个使用 erlang 编写的 AMQP(高级消息队列协议)的服务实现,简单来说,就是一个功能强大的消息队列服务。 概念理解: Producer : 消息发送者 RabbitMQ : Vhost: 相当于分组,每个vhost下数据是隔离的 Exchange: 路由器,接收消息,本根据RoutingKey分发消息 headers:消息头类型 路由器,内部应用 direct:精准匹配类型 路由器 topic:主题匹配类型 路由器,支持正则 模糊匹配 fanout:广播类型 路由器,RoutingKey无效 RoutingKey: 路由规则 Queue: 队列,用于存储消息(消息的目的地) Consumer : 消息消费者 持久化: 一个好的消息队列当然需要消息持久化功能,服务宕机,未消费消息不丢失,RabbitMQ持久化分为Exchange、Queue、Message Exchange 和 Queue 持久化 指持久化Exchange、Queue 元数据,持久化的是自身,服务宕机,Exchange 和 Queue 自身就没有了 Message 持久化 顾名思义 把每一条消息体持久化,服务宕机,消息不丢失 Durable 持久、Transient 临时,Queue新建类似 分析理解: 便于更直观的理解,把 RabbitMQ

RabbitMQ-2介绍

狂风中的少年 提交于 2020-12-16 04:28:34
简介 RabbitMQ:接受消息再传递消息,可以视为一个"邮局"。发送者和接受者通过队列来进行交互,队列的大小可以视为无限的,多个发送者可以发生给一个队列,多个接收者也可以从一个队列中接受消息。 code rabbitmq使用的协议是amqp,用于python的推荐客户端是pika pip install pika -i https://pypi.douban.com/simple/ 生产者:send.py import pika # 建立一个连接 connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost')) # 连接本地的RabbitMQ服务器 channel = connection.channel() # 获得channel 这里链接的是本机的,如果想要连接其他机器上的服务器,只要填入地址或主机名即可。 接下来我们开始发送消息了,注意要确保接受消息的队列是存在的,否则rabbitmq就丢弃掉该消息. channel.queue_declare(queue='hello') # 在RabbitMQ中创建hello这个队列 channel.basic_publish(exchange='', # 使用默认的exchange来发送消息到队列 routing_key='hello', #

rabbit安装

吃可爱长大的小学妹 提交于 2020-12-15 01:56:01
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.deb.sh | sudo bash yum install erlang rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey rpm --import https://packagecloud.io/gpg.key curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash yum install rabbitmq-server-3.7.14-1.el7.noarch.rpm 选择相应的版本安装(el6是centos6,el7是centos7) chkconfig rabbitmq-server on service rabbitmq-server start 来源: oschina 链接: https://my.oschina.net/u/2549862/blog/3032772

CentOS下安装Rabbit镜像集群-实操步骤

ぃ、小莉子 提交于 2020-12-14 10:13:38
安装RabbitMQ 看我之前的文章 修改配置文件 vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app 修改:loopback_users 中的 <<"guest">>, 改成[] 这样远程能访问 心跳检测修改为10 heartbeat 为10 修改防火墙 firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --zone=public --add-port=15672/tcp --permanent #下面都是集群配置用到的端口 firewall-cmd --zone=public --add-port=25672/tcp --permanent firewall-cmd --zone=public --add-port=4369/tcp --permanent firewall-cmd --reload 启动RabbitMQ 试试好不好用 /etc/init.d/rabbitmq-server start rabbitmq-plugins enable rabbitmq_management 输入网址 xxx:15672 账户密码都是guest 进入镜像集群配置 以下是我的机器配置,换成自己的即可 主机ip

RabbitMQ 高可用集群搭建

萝らか妹 提交于 2020-12-13 16:34:01
面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ plugin 大型应用插件(Sharding、Rederation) Queue镜像失败手动同步 各集群配置同步方式(RabbitMQ export\import) 客户端连接方式(尽量采用AMQP组来动态链接) RabbitMQ 产线二次产品化封装(消息补偿、发送消息持久化、异常处理、监控页面、重复消息剔除) 1.面向EDA(事件驱动架构)的方式来设计你的消息 在通常情况下你在使用消息中间件的时候,都是未经设计的使用,你没有把应用架构和系统架构边界搞清楚。消息中间件只是一个纯粹的技术工具,当你引入的时候是站在应用架构的角度引入的。这是架构的角度,也是架构的上帝视角,这样你就不会用到最后发现越来越混乱,而且也无法结合软件模式、方法论、最佳实践来综合提升系统的架构能力。 EDA(Event Driven Architecture, EDA ) 事件驱动架构,它是一种用来在SOA或者Micro service中进行的架构模式。它的好处有几个,柔性具有很高的伸缩性。 (具体参考本人的SOA架构文章: SOA架构设计经验分享—架构、职责、数据一致性 )