相机

工业相机基本参数以及选型参考(二)

大憨熊 提交于 2020-01-08 04:50:49
分辨率 相机每次采集图像的像素点数,一般对应于光电传感器靶面排列的像元数,如1920*1080。 像素深度 每位像素数据的位数,常见的是8bit,10bit,12bit。分辨率和像素深度共同决定了图像的大小。例如对于像素深度为8bit的500万像素,则整张图片应该有500万*8/1024/1024=37M(1024bit=1KB,1024KB=1M)。增加像素深度可以增强测量的精度,但同时也降低了系统的速度,并且提高了系统集成的难度(线缆增加,尺寸变大等)。 最大帧率/行频 相机采集和传输图像的速度,对于面阵相机一般为每秒采集的帧数(Frames/Sec),对于线阵相机为每秒采集的行数(HZ)。 曝光的方式和快门速度 工业线阵相机都是逐行曝光的方式,可以选择固定行频和外触发同步的方式,曝光时间可以与行周期一致,也可以设定一个固定的时间;面阵相机有帧曝光、场曝光和滚动曝光几种常见方式,工业数字相机一般都提供外触发采图的功能,快门速度一般可到10ms,高速相机还会更快。 像元尺寸 像元大小和像元数(分辨率)共同决定了相机靶面的大小。目前工业数字相机像元尺寸一般位3μm~10μm,一般像元尺寸越小,制造难度越大,图像质量也越不容易提高。 光谱响应特性 是指该像元传感器对不同光波的敏感特性,一般响应范围为350nm~1000nm,一些相机在靶面前面加了一个滤镜,滤除红外线

数码常识:CCD的原理

蹲街弑〆低调 提交于 2020-01-08 04:22:23
数码常识:CCD的原理 说到CCD的尺寸,其实是说感光器件的面积大小,这里就包括了CCD和CMOS。感光器件的面积大小,CCD/CMOS面积越大,捕获的光子越多,感光性能越好,信噪比越低。CCD/CMOS是数码相机用来感光成像的部件,相当于光学传统相机中的胶卷。 CCD上感光组件的表面具有储存电荷的能力,并以矩阵的方式排列。当其表面感受到光线时,会将电荷反应在组件上,整个CCD上的所有感光组件所产生的信号,就构成了一个完整的画面。 如果分解CCD,你会发现CCD的结构为三层,第一层是“微型镜头”,第二层是“分色滤色片”以及第三层“感光层”。 第一层“微型镜头” 我们知道,数码相机成像的关键是在于其感光层,为了扩展CCD的采光率,必须扩展单一像素的受光面积。但是提高采光率的办法也容易使画质下降。这一层“微型镜头”就等于在感光层前面加上一副眼镜。因此感光面积不再因为传感器的开口面积而决定,而改由微型镜片的表面积来决定。 第二层是“分色滤色片” CCD的第二层是“分色滤色片”,目前有两种分色方式,一是RGB原色分色法,另一个则是CMYK补色分色法这两种方法各有优缺点。首先,我们先了解一下两种分色法的概念,RGB即三原色分色法,几乎所有人类眼镜可以识别的颜色,都可以通过红、绿和蓝来组成,而RGB三个字母分别就是Red, Green和Blue,这说明RGB分色法是通过这三个通道的颜色调节而成

手机摄像头的组成结构和工作原理

邮差的信 提交于 2020-01-08 03:23:17
手机摄像头的组成结构和工作原理 手机摄像头由: PCB板、镜头、固定器和滤色片、DSP(CCD用)、传感器等部件组成。 工作原理为: 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到手机处理器中进行处理,最终转换成手机屏幕上能够看到的图像。 PCB板 摄像头中用到的印刷电路板,分为硬板、软板、软硬结合板三种 镜头 镜头是将拍摄景物在传感器上成像的器件,它通常由由几片透镜组成。从材质上看,摄像头的镜头可分为塑胶透镜和玻璃透镜。 镜头有两个较为重要的参数:光圈和焦距。 光圈是安装在镜头上控制通过镜头到达传感器的光线多少的装置,除了控制通光量,光圈还具有控制景深的功能,光圈越大,景深越小,平时在拍人像时背景朦胧效果就是小景深的一种体现。 景深是指在摄影机镜头前能够取得清晰图像的成像所测定的被摄物体前后距离范围。 数值越小,光圈越大,进光量越多,画面比较亮,焦平面越窄,主体背景虚化越大; 值越大,光圈越小,进光量越少,画面比较暗,焦平面越宽,主体前后越清晰。 焦距 焦距是从镜头的中心点到传感器平面上所形成的清晰影像之间的距离。根据成像原理,镜头的焦距决定了该镜头拍摄的物体在传感器上所形成影像的大小。比如在拍摄同一物体时,焦距越长,就能拍到该物体越大的影像。长焦距类似于望远镜。 固定器和滤色片

Android Camera(二) Camera程序编写

淺唱寂寞╮ 提交于 2020-01-08 03:17:57
Android Camera 相机程序编写      要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置, 在AndroidManifest.xml中加上使用设备相机的权限 : <uses-permission android:name="android.permission.CAMERA" />    为你的应用创建自定义的相机,一般步骤如下:   1.检测相机硬件并获取访问   2.建立一个Preview类:需要一个相机预览的类,继承 SurfaceView 类,并实现 SurfaceHolder 接口。   3.建立预览的布局。   4.为拍照建立监听。   5.拍照并且存储文件。   6.释放相机。   因为相机是一个共享资源,所以应该被谨慎管理,这样应用之间才不会发生冲突。   所以使用完相机之后应该调用 Camera.release() 来释放相机对象。   如果不释放,后续的使用相机请求(其他应用或本应用)都会失败。 检测相机硬件   如果你的程序没有在manifest的声明中要求有相机,那么你应该在运行时检查相机的存在与否,主要用了 PackageManager.hasSystemFeature() 方法。比如: /** Check if this device has a camera */ private boolean

ISP基础(02):rolling shutter 和 global shutter

浪尽此生 提交于 2020-01-06 17:50:13
需要知道CMOS传感器的工作方式并不是像很多人想象的那样通过一个信号线就可以控制曝光的开始和结束。传感器的感光二极管不停的在捕获入射光子并转换成电子存储在电荷井中,控制部分可以将其读出和清零,但不能停止曝光。那么电子快门是怎么实现的呢?都存在哪几种快门,原理是什么? 1、什么是shutter? 快门是照相机用来控制感光片有效曝光时间的机构。是照相机的一个重要组成部分,它的结构、形式及功能是衡量照相机档次的一个重要因素。一般而言快门的时间范围越大越好。秒数低适合拍运动中的物体,某款相机就强调快门最快能到1/16000秒,可轻松抓住急速移动的目标。不过当你要拍的是夜晚的车水马龙,快门时间就要拉长,常见照片中丝绢般的水流效果也要用慢速快门才能拍出来。Global shutter 曝光时间更短,但会增加RMS 读出噪声;Rolling shutter可以达到更高的帧速,但当曝光不当或物体移动较快时,会出现部分曝光(partial exposure)、斜坡图形(skew)、晃动(wobble) 等现象。曝光时间短的应用(如<500μs)适合Global shutter,曝光时间长(如大于500μs)时,选择rolling shutter可以有更低的噪声和帧速。 1.1 什么是global shutter? 通过整幅场景在同一时间曝光实现的。Sensor所有像素点同时收集光线,同时曝光

IOS研究院之打开照相机与本地相册选择图片

北城余情 提交于 2020-01-06 06:43:52
如下图所示 在本地相册中选择一张图片后,我们将他拷贝至沙盒当中,在客户端中将它的缩略图放在按钮旁边,这个结构其实和新浪微薄中选择图片后的效果一样。最终点击发送将按钮将图片2进制图片上传服务器。 下面我们仔细学习具体的细节。创建一个空的IOS项目,接着在创建一个ViewController。 AppDelegate.h 应用的代理类 这个没什么好说的就是直接打开刚刚创建的新ViewController。 1 #import <UIKit/UIKit.h> 2 #import "TestViewController.h" 3 4 @interface AppDelegate : UIResponder <UIApplicationDelegate> 5 6 @property (strong, nonatomic) UIWindow *window; 7 @property (strong, nonatomic) UINavigationController *navController; 8 @property (strong, nonatomic) UIViewController *viewController; 9 @end AppDelegate.m 在这里就是打开我们创建的TestViewController 01 #import "AppDelegate.h" 02 03

IOS研究院之打开照相机与本地相册选择图片

折月煮酒 提交于 2020-01-06 06:35:48
如下图所示 在本地相册中选择一张图片后,我们将他拷贝至沙盒当中,在客户端中将它的缩略图放在按钮旁边,这个结构其实和新浪微薄中选择图片后的效果一样。最终点击发送将按钮将图片2进制图片上传服务器。 下面我们仔细学习具体的细节。创建一个空的IOS项目,接着在创建一个ViewController。 AppDelegate.h 应用的代理类 这个没什么好说的就是直接打开刚刚创建的新ViewController。 1 #import <UIKit/UIKit.h> 2 #import "TestViewController.h" 3 4 @interface AppDelegate : UIResponder <UIApplicationDelegate> 5 6 @property (strong, nonatomic) UIWindow *window; 7 @property (strong, nonatomic) UINavigationController *navController; 8 @property (strong, nonatomic) UIViewController *viewController; 9 @end AppDelegate.m 在这里就是打开我们创建的TestViewController 01 #import "AppDelegate.h" 02 03

IOS研究院之打开照相机与本地相册选择图片(六)

半城伤御伤魂 提交于 2020-01-06 06:30:03
原创文章如需转载请注明:转载自 雨松MOMO程序研究院 本文链接地址: IOS研究院之打开照相机与本地相册选择图片(六) Hello 大家好 IOS的文章好久都木有更新了,今天更新一篇哈。 这篇文章主要学习如何在IOS程序中打开照相机与本地相册并且选择一张图片。还是老样子MOMO写了一个简单的测试程序,如下图所示 在本地相册中选择一张图片后,我们将他拷贝至沙盒当中,在客户端中将它的缩略图放在按钮旁边,这个结构其实和新浪微薄中选择图片后的效果一样。最终点击发送将按钮将图片2进制图片上传服务器。 下面我们仔细学习具体的细节。创建一个空的IOS项目,接着在创建一个ViewController。 AppDelegate.h 应用的代理类 这个没什么好说的就是直接打开刚刚创建的新ViewController。 #import <UIKit/UIKit.h> #import "TestViewController.h" @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) UINavigationController *navController; @property

iOS打开照相机与本地相册选择图片

限于喜欢 提交于 2020-01-06 06:29:30
最近正好项目里面要集成“打开照相机与本地相册选择图片”的功能,今天就在这边给大家写一个演示程序;打开相机拍摄后或者在相册中选择一张照片,然后将它显示在界面上。好了废话不多说,因为比较简单直接上源码。 首先,我们在头文件中添加需要用到的actionSheet控件,显示图片的UIImageView控件,并且加上所需要的协议 [objc] view plain copy #import <UIKit/UIKit.h> @interface ImagePickerViewController : UIViewController<UIImagePickerControllerDelegate,UIActionSheetDelegate,UINavigationControllerDelegate> @property ( strong , nonatomic ) IBOutlet UIImageView *headImage; @property ( strong , nonatomic ) UIActionSheet *actionSheet; - (IBAction)clickPickImage:( id )sender; @end 通过点击我设置在界面中的按钮来呼出actionSheet控件,来选择相应的操作拍照或是在相册中选择相片,代码如下: [objc] view plain

Android Camera(二) Camera程序编写

我们两清 提交于 2020-01-06 06:14:00
Android Camera 相机程序编写      要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置, 在AndroidManifest.xml中加上使用设备相机的权限 : <uses-permission android:name="android.permission.CAMERA" />    为你的应用创建自定义的相机,一般步骤如下:   1.检测相机硬件并获取访问   2.建立一个Preview类:需要一个相机预览的类,继承 SurfaceView 类,并实现 SurfaceHolder 接口。   3.建立预览的布局。   4.为拍照建立监听。   5.拍照并且存储文件。   6.释放相机。   因为相机是一个共享资源,所以应该被谨慎管理,这样应用之间才不会发生冲突。   所以使用完相机之后应该调用 Camera.release() 来释放相机对象。   如果不释放,后续的使用相机请求(其他应用或本应用)都会失败。 检测相机硬件   如果你的程序没有在manifest的声明中要求有相机,那么你应该在运行时检查相机的存在与否,主要用了 PackageManager.hasSystemFeature() 方法。比如: /** Check if this device has a camera */ private boolean