相机

图片格式入门(RAW, TIFF, JPEG)

我的梦境 提交于 2019-12-22 19:01:40
JPEG、TIFF等文件是数码相机在RAW格式基础上,调整白平衡和饱和度等参数,生成的图像数据 TIFF图像格式:扩展名是TIF,全名是Tagged Image File Format。TIFF是一种非失真的压缩格式(最高2-3倍的压缩比)。这种压缩是文件本身的压缩,即把文件中某些重复的信息采用一种特殊的方式记录,文件可完全还原,能保持原有图颜色和层次,优点是图像质量好,兼容性比RAW格式高,但占用空间大 JPEG图像格式:扩展名是JPG,其全称为Joint Photograhic Experts Group。JPEG是一个可以提供优异图像质量的文件压缩格式,设置为JPEG格式所拍摄的照片在相机内部通过 影像处理器 已经加工完毕,可以直接出片。而且在大部分数码相机中,这个“加工”功能还是很出色的,并且我可以负责任地说JPEG是一个值得相信的存储格式。虽然JPEG是一种有损压缩格式,一般情况下,只要不追求图像过于精细的品质(普通消费级DC也很难谈上追求图像的及至),你会发现JPEG有诸多值得考虑的优势,所谓压缩格式就是,JPEG获得一个图像数据,通过去除多余的数据,减少它的储存大小,但在压缩过程中丢掉的原始图像的部分数据是无法恢复的,通常压缩比率在10:1至40:1之间,这样JPEG可以节省很大一部份存储卡的空间,从而大大增加了图片拍摄的数量,并加快了照片存储的速度

三种主流深度相机介绍

有些话、适合烂在心里 提交于 2019-12-20 23:15:45
随着机器视觉,自动驾驶等颠覆性的技术逐步发展,采用 3D 相机进行物体识别,行为识别,场景 建模的相关应用越来越多,可以说深度相机就是终端和机器人的眼睛,那么什么是深度相机呢,跟之前的普通相机(2D)想比较,又有哪些差别? 深度相机又称之为3D相机,顾名思义,就是通过该相机能检测出拍摄空间的景深距离,这也是与普通摄像头最大的区别。 普通的彩色相机拍摄到的图片能看到相机视角内的所有物体并记录下来,但是其所记录的数据不包含这些物体距离相机的距离。仅仅能通过图像的语义分析来判断哪些物体离我们比较远,哪些比较近,但是并没有确切的数据。而 深度相机则恰恰解决了该问题,通过深度相机获取到的数据,我们能准确知道图像中每个点离摄像头距离,这样加上该点在 2D 图像中的(x,y)坐标,就能获取图像中每 个点的三维空间坐标。通过三维坐标就能还原真实场景,实现场景建模等应用。 深度相机的方法分类如下表所示: 目前市面上常有的深度相机方案有以下三种。 (1)结构光(Structured-light),代表公司有奥比中光,苹果(Prime Sense),微软 Kinect-1,英特尔 RealSense, Mantis Vision 等。 (2)双目视觉(Stereo),代表公司 Leap Motion, ZED, 大疆; (3)光飞行时间法(TOF),代表公司微软 Kinect-2,PMD

three.js入门3

我怕爱的太早我们不能终老 提交于 2019-12-20 21:23:25
为什么要用three.js Three.js为我们封装了底层的 WebGl接口 ,使我们在无需掌握繁冗的图形学知识的基础下可以轻松的创建三维场景。相比较使用底层的WebGL我们可以使用更少的代码,大大的降低了学习成本,使开发变的更高效。 新建HTML页面 首先新建一个HTML页面,引入Three.js文件。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>three.js</title> </head> <body> <script type="text/javascript" src="js/Three/three.js"></script> <script> </script> </body> </html> 创建一个三维场景 var scene = new THREE.Scene(); 添加一个渲染器 Three.js为我们提供了如:canvas,SVG,CSS3..众多渲染器,但是WebGL渲染器相较比较灵活,所以均以WebGL为例。 var render = new THREE. THREE.WebGLRenderer({ //抗锯齿属性,WebGLRenderer常用的一个属性 antialias: true }); //设置背景色为白色(0xffffff) render.setClearColor

Halcon提取目标高度信息

安稳与你 提交于 2019-12-17 17:02:43
Halcon提取目标高度信息 *关闭图像窗口更新 dev_update_window ('off') *关闭变量更新 dev_update_var ('off') *关闭程序计数器更新 dev_update_pc ('off') *关闭窗口 dev_close_window () *打开新窗口 dev_open_window (0, 0, 672, 484, 'black', WindowHandle) *设置字体显示信息 set_display_font (WindowHandle, 16, 'mono', 'true', 'false') *读取左面相机采集的图像 read_image (ImageL, 'E:/all/33') *读取右面相机采集的图像 read_image (ImageR, 'E:/all/34') *获取图像的大小 get_image_size (ImageR, Width, Height) *根据双目立体视觉标定获取到左右相机的摄像机内部参数和右相机相对左相机的位姿 *左相机的摄像机内部参数 CamParamL := [0.0130507774353,-665.817817207,1.4803417027e-5,1.48e-5,155.89225769,126.70664978,320,240] *右相机的摄像机内部参数 CamParamR := [0

CNN是靠什么线索学习到深度信息的?——一个经验性探索

霸气de小男生 提交于 2019-12-16 19:09:34
今天给大家带来一篇我很喜欢的风格的paper,详细分析了基于深度学习的单目深度估计算法的局限性。虽然这文章没有提出新的方法,但是对于我们理解CNN是如何学习到一些appearance cue来处理需要几何模型的视觉问题大有裨益。 首先,我们知道单目相机是没有办法恢复出来绝对尺度的,但是如果我们有实际的场景先验,这个问题是可以部分被解决的,在自动驾驶的场景中体现最为明显。简化的原理如下图: 在上面这个图中,对实际场景做了一些简化。所有的大写字母代表的都是在3D世界中的实际坐标,小写字母代表的都是在相机成像平面上的像素坐标。f为相机的实际焦距,假设通过标定已知。那么我们其实可以在图中找到两个和Z相关的相似三角形来恢复实际尺度: 第一个是h/H = f/Z,整理下可得到Z=Hf/h。从上面公式可知,我们需要知道实际世界中的车宽(或车高),然后通过物体在图像中的像素高度即可换算出来实际物体的距离。直观上来理解,物体应该是近大远小的。 第二个是y/Y = f/Z,同理可得Z=Yf/y。在这种方法中,我们需要知道的是相机距离地面的安装高度以及在图像中车轮与地面接触点的纵坐标。直观上理解,如果我们在一条平直的路上,那么离我们越近的物体它的纵坐标应该越靠图像下方,越远的物体越靠图像上方。 (思考题:以上两种测距方式分别使用了什么样的先验知识?这些先验如果不成立的时候能有什么手段来放宽限制

最简单的针孔相机模型标定方法,使用Matlab进行快速可视化相机标定,小白专用,超详细

て烟熏妆下的殇ゞ 提交于 2019-12-16 03:44:52
相机标定是机器视觉、SLAM等绕不开的环节,今天介绍一种最为简单的可视化标定方法。      这篇文章只是讲解如果标定,关于相机的标定原理,可以参考别的文章,这里推荐一篇 《【机器视觉】张氏法相机标定》 一. 准备工作 方格标定板一块; 已经安装Matlab的电脑一台(Matlab最低版本要求是R2013b,推荐使用最新版本R2019b); 注意:如果你有正版Matlab账号,或者你是学生,你可以使用网页版的Matlab 二. 开始标定 1.第一步 打印标定板 如果你还没有标定,那么你需要打印一块标定板出来,但是你放心,准备标定板的过程是非常简单的。你先将我提供的标定板图片下载—— 下载标定板 (提取码:5yun),然后打印出来,只要你保持图片的横纵比,打印成任何尺寸都可以,我推荐打印在A4纸上。打印之后的样式,如下图: 2. 拍摄包含标定板的图片 使用将要被标定的相机,拍摄一些包含标定板的照片,根据我的经验20到30张图片已经够了。当然图片越多结果也会越准确,但是会多用一些时间。拍摄图片的技巧是,要多个角度大范围的去拍摄标定板,让它成像在你相机屏幕的各个地方,大家可以参考我下面的拍摄方式。 注意 : 拍摄照片时有几点需要注意:标定板的摆放没有要求,横竖都行。但是拍照片时对相机的姿态有要求,你相机如果是最终横着使用,那么拍照片时相机也要横着拍。至于这里面的原因

抖音上传视频和拍视频有什么区别,抖音怎么提高播放量

て烟熏妆下的殇ゞ 提交于 2019-12-15 22:38:37
作为一名短视频MCN从业者,小编每天都会接触到各种各样的短视频新手玩家。而他们最常见的一个问题就是发了视频为什么没有播放。每次在看到这个问题以后,我总会告诉大家用抖音自带的相机拍摄就可以解决这个问题。 抖音上传视频和拍视频有什么区别? 可以说80%以上的用户,发了视频没有播放量都是因为新号+上传视频导致的,另外的20%是因为被限流了。 如果你的账号没有播放量,不妨用抖音自带相机拍摄一个视频试一下。 因为抖音的推送规则是要先判断你的视频是不是原创,然后再判断你视频的质量。 我们在用抖音自带相机拍摄以后,抖音就可以100%断定你的视频是原创作品,随后就会对你的作品进行推送。 第一波流量大概在几百左右,再根据这几百播放量的数据反馈,决定是否继续推送你的作品。 所以用抖音自带相机拍摄视频是非常重要的一件事情,在有条件的情况下一定要用抖音相机进行视频拍摄哦! 来源: CSDN 作者: wikes9 链接: https://blog.csdn.net/wikes9/article/details/103553749

Unity学习笔记:相机属性

送分小仙女□ 提交于 2019-12-12 14:26:29
clera Flag清除标记 skybox 具备天空盒,清除前面绘制的图形。 solid Color 具备背景图效果,清除前面绘制的图形。 Depth only没有背景和天空盒,不清除前面绘制的图形,清除图像的深度。(图像覆盖) Dont Clear没有背景和天空盒,不清除前面绘制的图形,也不清除图形深度。 清除标记,deepth,剔除遮挡 三个因素共同影响最后摄像机的成像。 优先渲染方法:设置副摄像机,将其clera Flag设置为Depth only然后将渲染的层级Culling Mask设置需要被优先渲染的物体的层级,然后将其优先级Depth设置→大于←主摄像机 代码设置层级: gameObjuct.Camera.cullingMask = LayerMask.GetMask(复数string);根据传入的参数来激活所有与参数名字相同的层级。 gameObjuct.Camera.cullingMask = int;根据传入的数字转换成二进制激活层级。激活第一层为1,一二层为3,一二三层为7,第四层为8,第n层就是2的n-1次方。 Projection切换透视模式和正交模式,正交模式将摄像机矩形投射出去,多用于观察地图。 size(正交)矩阵的大小,值为高度的一般,长度的黄金比例(雾) gameObjuct.Camera.fieldfview返回透视相机广角的角度。

四轴平面机器人手眼标定方法,eye-in-hand,亲测可用(草稿,后期整理)

╄→гoц情女王★ 提交于 2019-12-11 16:52:03
之前阅读博客:机器人手眼标定 (四轴六轴都适用): https://blog.csdn.net/Stones1025/article/details/90664168 发现有如下问题,所写方法并不适用于四轴的情况, 在传统六轴情况下式12是超定方程,可解。但是,四轴情况下相邻机械臂只有纯平移,Rc12应该等于单位矩阵,(Rc12-I)=0,也就是说M3全是0,是没办法求解t的。 从另一个角度看:四轴时,公式2在求R时已经用过了,即公式9,那么由公式2推导出的公式11是恒成立的。公式11左边项为0 ,右边项在公式9可以保证为0。所以没办法求解t。 从直观的角度看:eye-in-hand情况下,机械臂末端和相机相当于一个刚体上的两个点,如果一个刚体只是进行平移,不旋转,那么他上面所有点的平移量是相同的,我们永远无法知道刚体上两点之间的相对距离是多少。 所以个人认为这种方法是没办法求解平移t的。 于是再想别的方法: 这是从PnP中想到的一个方法 PnP(Perspective-n-Point)是求解 3D 到 2D 点对运动的方法。它描述了当我们知道n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。 PnP是已知一些点在世界坐标系的3d坐标,和他在相机坐标系下的像素坐标(2d),求解出相机相对世界坐标系的变换矩阵T 那我们把机械臂基座标系当做世界坐标

深度/RGBD相机简介

为君一笑 提交于 2019-12-11 11:42:51
深度相机与RGBD相机的区别?为何经常概念混淆? 什么是深度图? 什么是深度/RGB-D相机(有什么关系?)? RGB-D相机原理简介 结构光 飞行时间 RGB-D相机有哪些坑? RGB-D相机优点 RGB-D相机应用 深度图一般是16位的 单目结构光?双目结构光? 单目结构光 有一个红外发射器和一个红外接收器 双目结构光 有一个红外发射器和两个红外接收器 RGB-D相机有哪些坑 理解一下这里的视差~这个影响比较小。基线越大影响越明显,同时越远越明显。 RGB-D相机的优点: RGB-D相机的应用? 来源: CSDN 作者: 凌晨四点天使之城 链接: https://blog.csdn.net/qq_41665685/article/details/103476266