warp

flex布局语法+实例

a 夏天 提交于 2020-08-15 05:38:26
一、什么是flex布局   flex 是 flexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为 flex 布局。 你可以将前端页面想象成一个巨大的容器,里面装满了各式各样的盒子元素,为了方便元素排列布局,css引入弹性布局。即设置了弹性布局的元素,他的大小和对齐方式将更加灵活的随着他所处空间的大小而改变。 任何元素都可以使用flex布局,不区分行内、块级元素。注意:webkit 内核的浏览器,必须加上-webkit前缀。且设为 flex 布局以后, 子元素的float、clear和vertical-align属性将失效 。 二、flex布局中的基本概念   1.容器     采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。我更喜欢称为父容器和子容器。容器具有这样的特点:父容器可以统一设置子容器的排列方式,子容器也可以单独设置自身的排列方式, 如果两者同时设置,以子容器的设置为准。   2.轴线     容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end

基于RANSAC的图像全景拼接

天大地大妈咪最大 提交于 2020-08-14 04:48:07
基于RANSAC的图像全景拼接 RANSAC算法 RANSAC是一种迭代算法,用来从观测数据中估算出数学模型的参数,此基础上便可以分离内群与离群数据。简单来说就是一般来讲观测的数据里经常会出现很多噪音,比如说像SIFT匹配有时就会因为不同地方有类似的图案导致匹配错误。而RANSAC就是通过反复取样,也就是从整个观测数据中随机抽一些数据估算模型参数之后看和所有数据误差有多大,然后取误差最小视为最好以及分离内群与离群数据。 全景拼接原理介绍 针对某个场景拍摄多张/序列图像 通过匹配特征(sift匹配)计算下一张图像与上一张图像之间的变换结构。 图像映射,将下一张图像叠加到上一张图像的坐标系中 变换后的融合/合成 重复上述步骤 全景图像拼接最重要的两个步骤就是: 特征点匹配 这部分主要采用SIFT算法实现,之前的博客有介绍就不再详细介绍了,主要是为了找到两幅图像相同的特征点并将其进行匹配。 图片匹配 图片匹配就是找到图像之间所有重叠的部分,将其拼接后就能得到一幅全景图。 图像配准 图像配准是对图像进行变换,使变换后的图像能够在很好的拼接在上一张图片的坐标系。为了能够进行图像对比和更精细的图像分析,图像配准是一步非常重要的操作因为图片存在歪斜或两张图片的平面与平面之间景深不同(近大远小),直接将两张图片进行映射变换会导致图片中部分物体有重影现象(鬼影)。为了尽量减小这种情况

图像特征点、投影变换与图像拼接

六眼飞鱼酱① 提交于 2020-08-13 13:05:42
点击上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 一、全景拍照中的投影变换 在32. 镜头、曝光,以及对焦(下)中,我给你介绍了各种各样的相机镜头,也介绍了视场角(FOV)这个概念。现在咱 图像特征点、投影变换与图像拼接 们手机上的主摄像头一般FOV是七、八十度左右,有的更小一些。但人类的视觉系统FOV可以达到 。 广角镜头、鱼眼镜头能够让你拍摄出非常大FOV的图像。但它们非常昂贵,而且具有强烈的畸变。 全景拼接这个功能也能够让你拍摄出很大FOV的图像,你很可能已经使用过这个功能了,它甚至可以拍摄出水平FOV达到360o的图像。我们可以比较下。这样拍摄出来的图像比起鱼眼镜头的畸变小很多。 人类的视角范围200 x 135° 全景拼接图像视角范围360x180° 全景拼接是通过先拍摄不同视角的多张图像,然后将它们拼接而成的: 那么,像下面这样几个视角拍摄的图像,我们是不是直接拼接平移这些图像然后拼接就可以了呢? 多个视角拍摄的图像 很显然,不管我们是把左边的图像摆在上面,还是把右边的图像摆在上面,都会观察到“对不齐”的现象(看看中间栏杆的断裂缝): 仅仅平移图像拼接时会对不齐 那应该怎么办呢?这时候就要用到我在28. 图像扭曲中介绍的图像的Warping技术。适当的Warp图像然后再做拼接,能够使得我们得到完美的全景图像: Warping是一种改变图像像素位置的技术

CUDA编程之快速入门

廉价感情. 提交于 2020-08-12 14:35:27
CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构。做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要的工具,CUDA是做视觉的同学难以绕过的一个坑,必须踩一踩才踏实。CUDA编程真的是入门容易精通难,具有计算机体系结构和C语言编程知识储备的同学上手CUDA编程应该难度不会很大。本文章将通过以下五个方面帮助大家比较全面地了解CUDA编程最重要的知识点,做到快速入门: GPU架构特点 CUDA线程模型 CUDA内存模型 CUDA编程模型 CUDA应用小例子 1. GPU架构特点 首先我们先谈一谈串行计算和并行计算。我们知道,高性能计算的关键利用多核处理器进行并行计算。 当我们求解一个计算机程序任务时,我们很自然的想法就是将该任务分解成一系列小任务,把这些小任务一一完成。在串行计算时,我们的想法就是让我们的处理器每次处理一个计算任务,处理完一个计算任务后再计算下一个任务,直到所有小任务都完成了,那么这个大的程序任务也就完成了。如下图所示,就是我们怎么用串行编程思想求解问题的步骤。 但是串行计算的缺点非常明显,如果我们拥有多核处理器,我们可以利用多核处理器同时处理多个任务时,而且这些小任务并没有关联关系(不需要相互依赖,比如我的计算任务不需要用到你的计算结果),那我们为什么还要使用串行编程呢

open CV对图像的各类操作

﹥>﹥吖頭↗ 提交于 2020-08-11 06:05:24
本文章用于记录自己使用open CV过程中的要点,便于遗忘时查看。 首先使用 using namespace std; using namespace cv; 避免每次都需要敲 ::cv及::std; 图像的读写显示存取 图像定义: Mat image; 图像读取: imread(const String & filename,int flags = IMREAD_COLOR); 支持格式有: Windows bitmaps - *.bmp, *.dib (always supported) JPEG files - *.jpeg, *.jpg, *.jpe (see the Notes section) JPEG 2000 files - *.jp2 (see the Notes section) Portable Network Graphics - *.png (see the Notes section) WebP - *.webp (see the Notes section) Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (always supported) Sun rasters - *.sr, *.ras (always supported) TIFF files - *.tiff, *.tif

Embedding Methods-细粒度文本分类,从相似度出发

此生再无相见时 提交于 2020-08-09 08:50:18
背景 实体分类是指给一个实体一个指定的标签,这在关系抽取,知识问答等任务中非常重要。一般实体分类的标签都小于20个,但是当标签之间具有层级结构,同一个实体在不同的上下文中便可能具有不同的角色。例如: Madonna starred as Breathless Mahoney in the film Dick Tracy Madonna signed with Sire Records in 1982 and released her eponymous debut album the next year. 这两句话中,第一句的Madonna因为主演了电影,她的分类应该是 actress ,而下一句Maddona推出了新专辑,这里她的分类应该是 musician 。 对于细粒度实体分类来说,一个最大的困难是标注文本的收集,因为在标注的时候不考虑上下文的话可能会如上文的例子一样,会引入很多噪音。实际上一个优秀的细粒度实体分类模型应该是可以处理这些噪音并且在训练过程中发现label之间的关系的。 针对这些问题,本文使用ranking loss来解决这些问题,下面我们来看看文中是怎么解决的吧 模型 1. 学习目标 文中为了平衡细粒度标签之间的关系,将输入的文本信息和标签信息全都映射到一个低维空间 中,其中H表示embedding的维度。映射方法如下图所示

How many CUDA cores is used to process a CUDA warp?

霸气de小男生 提交于 2020-06-17 15:49:47
问题 I'm reading for the answers and there are conflict ideas: In this link https://www.3dgep.com/cuda-thread-execution-model/, two warps (64 threads) can run concurrently on an SM (32 CUDA cores). So, I understand that the threads on a warp are splited and be processed on 16 CUDA cores. This idea makes sense for me because each CUDA core has 1 32bitALU. However, in other links, they claimed that 1 CUDA core is able to handle 32 concurrent threads (same as a warp size) (https://cvw.cac.cornell.edu

android面试题(5.4)

我是研究僧i 提交于 2020-05-05 17:48:08
2020年Android面试题含答案 Android 2020年经典面试题 链接到 1.跨进程通信的几种方式 Intent,比如拨打电话 ContentProvider数据库存储数据 Broadcast广播通信 AIDL通信,通过接口共享数据 2.wait和 sleep 的区别 wait是Object的方法,wait是对象锁,锁定方法不让继续执行,当执行notify方法后就会继续执行,sleep 是Thread的方法,sleep 是使线程睡眠,让出cpu,结束后自动继续执行 3.String,StringBuffer,StringBuilder的区别 String不可改变对象,一旦创建就不能修改 String str="aaa"; str="bbb"; 以上代码虽然改变了str,但是执行过程是回收str,把值赋给一个新的str StringBuffer创建之后,可以去修改 StringBuilder也可修改,执行效率高于StringBuffer,不安全 当字符赋值少使用String 字符赋值频繁使用StringBuilder 当多个线程同步操作数据,使用StringBuffer 4.View和SurfaceView的区别 View基于主线程刷新UI,SurfaceView子线程又可以刷新UI 5.View的绘制原理 View为所有图形控件的基类,View的绘制由3个函数完成

目标检测算法(1)目标检测中的问题描述和R-CNN算法

被刻印的时光 ゝ 提交于 2020-05-05 13:37:47
目标检测(object detection)是计算机视觉中非常具有挑战性的一项工作,一方面它是其他很多后续视觉任务的基础,另一方面目标检测不仅需要预测区域,还要进行分类,因此问题更加复杂。最近的5年使用深度学习方法进行目标检测取得了很大的突破,因此想写一个系列来介绍这些方法。这些比较重要的方法可以分成两条主线,一条是基于区域候选(region proposal)的方法,即通过某种策略选出一部分候选框再进行后续处理,比如RCNN-SPP-Fast RCNN-Faster RCNN-RFCN等;另一条是直接使用卷积神经网络将图像变换到一个小的尺度,在新的尺度上使用anchor box来预测目标区域,这一类方法包括SSD以及Yolo的各个版本等;另外这个系列中也会穿插一些其他的算法如OverFeat、DPM等。本文是目标检测系列的第一篇,主要提及目标检测中的基本问题,并详细地介绍了RCNN算法。 一 目标识别问题的基本描述 目标检测是计算机视觉中非常具有挑战性的一项工作,它是其他很多后续视觉任务的基础,比如我们通常所说的识别(分类)问题,以人脸识别为例,通常其不是一个完全的端到端(end to end)的过程,如果想要获得很好的识别精度,一般情况下需要首先进行人脸检测,然后对检测得到的区域进行人脸定位(face landmark),然后再进行人脸对齐(face alignment)

拒绝拖拽 使用ConstraintLayout优化你的布局吧

安稳与你 提交于 2020-03-14 00:02:51
ConstraintLayout出现有一段时间了,不过一直没有特别去关注,也多多少少看了一些文字介绍,多数都是对使用可视化布局拖拽,个人对拖拽一直不看好,直到前端时间看到该文: 解析ConstraintLayout的性能优势 非常详尽的介绍了ConstraintLayout的性能优势,于是乎开始学习了一下ConstraintLayout。 本文的重点不在与可视化界面的学习,而在于如何手写各类约束布局属性。对于可视化界面学习推荐: Android新特性介绍,ConstraintLayout完全解析 http://blog.csdn.net/guolin_blog/article/details/53122387 下面开始进入正题,大家都知道,当布局嵌套深入比较深的时候,往往会伴随着一些性能问题。所以很多时候我们建议使用RelativeLayout或者GridLayout来简化掉布局的深度。 而对于简化布局深度,ConstraintLayout几乎可以做到极致,接下来我们通过实例来尽可能将所有常见的属性一步步的介绍清楚。 首先需要引入我们的ConstraintLayout,在build.gradle中加入: compile 'com.android.support.constraint:constraint-layout:1.0.2' 2 来编写一个Feed Item