Qt 摄像头
关键词: Qt QCamera QCameraViewfinder 摄像头
Qt多媒体API提供了许多与摄像头相关的类,使用这些类可以很容易的从移动设备摄像头或网络摄像头获取图像和视频。
主要内容:
- 相机的工作方式
- QCamera 相关类
- 相机Demo UI实现
- 基本功能实现
文档参考:
- camera理论基础和工作原理 https://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html
- 摄像头原理 https://blog.csdn.net/qq_40732350/article/details/88541417
最新地址: https://taotaodiy-qt.readthedocs.io/en/latest/project/camera.html
摄像头
光线通过镜头Lens进入摄像头内部,然后经过IRFilter过滤红外光,最后到达sensor(传感器),senor按照材质可以分为CMOS和CCD两种,
可以将光学信号转换为电信号,再通过内部的ADC电路转换为数字信号,然后传输给DSP(如果有的话,如果没有则以DVP的方式传送数据到基带芯片baseband
此时的数据格式Raw Data),经过加工处理这些数据被转换成RGB、YUV等格式输出。
Lens
相机中的透镜组件(一个或多个透镜,装置将光聚焦到传感器上)。
理论上,镜头可以只由一个镜片组成,但由于光学原因,单个镜片的成像不可避免的存在色差、球差、彗差、像散等等一些列像差问题,
尤其在边缘部分,成像很差。多个镜片的组合可以在一定程度上校正像差。
其次,如果镜头变焦需要多个镜片改变间距来实现。而且变焦后,像差会发生变化,
因而变焦镜头普遍需要更多镜片才能完成变焦和不同焦距的像差校正。
再者,很多镜头的对焦也是通过镜片位置改变实现的。一些镜头组件可以自动调整,以便与相机不同距离的物体可以保持对焦。
这通常是通过测量镜框特定区域的锐度来实现的,并且通过调整透镜组件直到它达到最大锐度。
在某些情况下,相机将始终使用该帧的中心。其他相机也可以允许指定聚焦区域(用于"触摸缩放"或"面部缩放"特征)。
传感器
一旦光到达传感器,它就被转换成数字像素。这个过程需要做很多事情,但最终归结为两件事:采集的数据经过多长时间的转换,以及如何获取更多的光。
转换时间越长,质量就越好,使用闪光灯有助于让更多的光线照射到传感器上,使其能够更快地转换像素,在相同的时间内提供更好的质量。
相反,只要相机稳定,允许较长的转换时间可以让您在较暗的环境中拍照。
图像处理
传感器捕获图像后,相机固件对其执行各种图像处理任务,以补偿各种传感器特性、当前照明和所需的图像特性。
更快的传感器像素转换时间往往会引入数字噪声,因此可以根据相机传感器设置进行一定量的图像处理以消除这种噪声。
图像的颜色也可以在这个阶段进行调整,以补偿不同的光源-闪光灯和阳光给同一物体提供非常不同的效果,
因此可以根据图片的白平衡来调整图像(由于光源的不同色温)。
在此阶段还可以执行某些形式的"特殊效果"。可以产生黑白,棕褐色或"负"样式的图像。
后期处理
最后,一个完美的聚焦,曝光和处理后的图像形成,它就可以被我们所用。
例如,相机图像可以由应用程序代码进一步处理(例如,检测条形码,或将全景图像缝合在一起),或保存为JPEG等通用格式