手机镜头光学特性:Ghost现象与Lens工艺解析

需积分: 15 3 下载量 188 浏览量 更新于2024-07-10 收藏 4.86MB PPT 举报
本文主要介绍了手机照相模组中的Lens(镜头)光学特性和鬼影现象,以及Lens的基本结构、类型、工艺流程和关键特性。 在手机摄像头模组中,Lens是至关重要的组件,它决定了成像的质量。Ghost,即鬼影,是在拍摄强光源时可能出现的一种光学现象。当光线通过镜头时,由于镜片的多次折射、镜筒内壁的反射或散射,会在图像中形成一系列淡色光圈,通常呈现绿色、紫色或紫罗兰色。尽管可以通过提高镜片镀膜质量与内部防反射处理来减轻鬼影,但完全消除这一现象是极其困难的。 Lens的基本结构包括镜桶、镜片、迈拉片、IR镜片和镜座。迈拉片是一种用于过滤红外光的材料,以确保色彩还原的准确性。IR镜片则主要用于阻挡红外线,避免对图像产生干扰。镜桶和镜座是支撑和固定镜片的结构部件,确保镜头的整体稳定。 根据材质和制造工艺,Lens主要分为两大类:球面玻璃镜片和塑料镜片。玻璃镜片具有良好的透光率,适合高端摄像设备,如专业相机和摄影机,但成本较高且成型难度大;而塑料镜片则成本低廉,易于成型,适用于手机、笔记本电脑等低端摄像器材,但其透光率和成像质量相对较差。 Lens的生产工艺包括玻璃镜片和塑料镜片的生产流程,涉及空白材料的准备、抛光、清洁、镀膜、成型、定中心等一系列步骤。此外,还有镜座和镜桶的生产,包括原材料的注塑、烘烤、成型和切割。 在Lens的特性方面,物理特性是衡量其性能的重要指标,主要包括: 1. EFL(Effective Focal Length):有效焦距,决定镜头的视角和放大倍数。 2. FOV(Field of View):视场角,表示镜头能看到的场景范围。 3. F/NO(Aperture Number):光圈数,影响进光量和景深。 4. Image Circle:影像圆,镜头能覆盖的感光元件区域。 5. TTL(Total Travel Length):总行程长度,表示镜头从最远到最近对焦时移动的距离。 6. FBL(Front Back Focus):前后焦距,衡量镜头在不同对焦距离下的成像质量。 7. Illumination(Relative Illumination):相对照度,衡量光线在传感器上的分布均匀性,影响成像的亮度和对比度。 了解这些基本知识,有助于我们更好地理解手机摄像头的工作原理,以及如何评估和选择合适的摄像头模组。

将下面这段代码改用python写出来: clear all; close all; fdir = '../dataset/iso/saii/'; %Reconstruction parameters depth_start = 710; depth_end = 720; depth_step = 1; pitch = 12; sensor_sizex = 24; focal_length = 8; lens_x = 4; lens_y = 4; %% import elemental image infile=[fdir '11.bmp']; outfile=[fdir, 'EIRC/']; mkdir(outfile); original_ei=uint8(imread(infile)); [v,h,d]=size(original_ei); %eny = v/lens_y; enx = h/lens_x; % Calculate real focal length %f_ratio=36/sensor_sizex; sensor_sizey = sensor_sizex * (v/h); %focal_length = focal_length*f_ratio; EI = zeros(v, h, d, lens_x * lens_y,'uint8'); for y = 1:lens_y for x = 1:lens_x temp=imread([fdir num2str(y),num2str(x),'.bmp']); EI(:, :, :, x + (y-1) * lens_y) = temp; end end %Reconstruction [EIy, EIx, Color] = size(EI(:,:,:,1)); %% EI_VCR time=[]; for Zr = depth_start:depth_step:depth_end tic; Shx = 8*round((EIx*pitch*focal_length)/(sensor_sizex*Zr)); Shy = 8*round((EIy*pitch*focal_length)/(sensor_sizey*Zr)); Img = (double(zeros(EIy+(lens_y-1)*Shy,EIx+(lens_x-1)*Shx, Color))); Intensity = (uint16(zeros(EIy+(lens_y-1)*Shy,EIx+(lens_x-1)*Shx, Color))); for y=1:lens_y for x=1:lens_x Img((y-1)*Shy+1:(y-1)*Shy+EIy,(x-1)*Shx+1:(x-1)*Shx+EIx,:) = Img((y-1)*Shy+1:(y-1)*Shy+EIy,(x-1)*Shx+1:(x-1)*Shx+EIx,:) + im2double(EI(:,:,:,x+(y-1)*lens_y)); Intensity((y-1)*Shy+1:(y-1)*Shy+EIy,(x-1)*Shx+1:(x-1)*Shx+EIx,:) = Intensity((y-1)*Shy+1:(y-1)*Shy+EIy,(x-1)*Shx+1:(x-1)*Shx+EIx,:) + uint16(ones(EIy,EIx,Color)); end end elapse=toc time=[time elapse]; display(['--------------- Z = ', num2str(Zr), ' is processed ---------------']); Fname = sprintf('EIRC/%dmm.png',Zr); imwrite(Img./double(Intensity), [fdir Fname]); end csvwrite([fdir 'EIRC/time.csv'],time);

2023-07-11 上传