投影仪的非线性校正

由于工作需要,在使用投影仪进行三维轮廓测量的时候,发现需要对投影仪发出的光强进行非线性校正,故借此谈谈如何对投影仪进行非线性校正。
比如,当我们用投影仪投出0到255的光强时,因为工艺问题、投影空间背景光、反射光以及噪声等问题,我们使用相机拍摄到的投影图片,是不能得到理想的线性对应的光强。
因此针对这一现象,我们就要使用非线性校正来解决。
通过非线性校正的方法,我们可以使投影仪投出来的光强,与相机拍到的光强之间是线性关系。
本次实验使用的投影仪是DELL投影仪M115HD。具体的操作流程如下:
1、在投影空间摆放一个白板(反射率不高),白板尽量正对投影仪,用投影仪分别投影出光强为全0到全255的图像,然后使用相机连续拍摄得到256张图片。
这里写图片描述
2、接下来就把任务交给MATLAB了,我们读取256张图片,为了减少计算量,以及减少误差。由于相机的分辨率为640*480,我们选取图片的中心部分(200*200)这一局域进行计算。

clear;
clc;
mat(:,:,001) = im2double(imread('新建文件夹\Image0000.bmp'));
mat(:,:,002) = im2double(imread('新建文件夹\Image0001.bmp'));
mat(:,:,003) = im2double(imread('新建文件夹\Image0002.bmp'));
mat(:,:,004) = im2double(imread('新建文件夹\Image0003.bmp'));
mat(:,:,005) = im2double(imread('新建文件夹\Image0004.bmp'));
mat(:,:,006) = im2double(imread('新建文件夹\Image0005.bmp'));
mat(:,:,007) = im2double(imread('新建文件夹\Image0006.bmp'));
mat(:,:,008) = im2double(imread('新建文件夹\Image0007.bmp'));
mat(:,:,009) = im2double(imread('新建文件夹\Image0008.bmp'));
mat(:,:,010) = im2double(imread('新建文件夹\Image0009.bmp'));
mat(:,:,011) = im2double(imread('新建文件夹\Image0010.bmp'));
mat(:,:,012) = im2double(imread('新建文件夹\Image0011.bmp'));
mat(:,:,013) = im2double(imread('新建文件夹\Image0012.bmp'));
mat(:,:,014) = im2double(imread('新建文件夹\Image0013.bmp'));
mat(:,:,015) = im2double(imread('新建文件夹\Image0014.bmp'));
mat(:,:,016) = im2double(imread('新建文件夹\Image0015.bmp'));
mat(:,:,017) = im2double(imread('新建文件夹\Image0016.bmp'));
mat(:,:,018) = im2double(imread('新建文件夹\Image0017.bmp'));
mat(:,:,019) = im2double(imread('新建文件夹\Image0018.bmp'));
mat(:,:,020) = im2double(imread('新建文件夹\Image0019.bmp'));
mat(:,:,021) = im2double(imread('新建文件夹\Image0020.bmp'));
mat(:,:,022) = im2double(imread('新建文件夹\Image0021.bmp'));
mat(:,:,023) = im2double(imread('新建文件夹\Image0022.bmp'));
mat(:,:,024) = im2double(imread('新建文件夹\Image0023.bmp'));
mat(:,:,025) = im2double(imread('新建文件夹\Image0024.bmp'));
mat(:,:,026) = im2double(imread('新建文件夹\Image0025.bmp'));
mat(:,:,027) = im2double(imread('新建文件夹\Image0026.bmp'));
mat(:,:,028) = im2double(imread('新建文件夹\Image0027.bmp'));
mat(:,:,029) = im2double(imread('新建文件夹\Image0028.bmp'));
mat(:,:,030) = im2double(imread('新建文件夹\Image0029.bmp'));
mat(:,:,031) = im2double(imread('新建文件夹\Image0030.bmp'));
mat(:,:,032) = im2double(imread('新建文件夹\Image0031.bmp'));
mat(:,:,033) = im2double(imread('新建文件夹\Image0032.bmp'));
mat(:,:,034) = im2double(imread('新建文件夹\Image0033.bmp'));
mat(:,:,035) = im2double(imread('新建文件夹\Image0034.bmp'));
mat(:,:,036) = im2double(imread('新建文件夹\Image0035.bmp'));
mat(:,:,037) = im2double(imread('新建文件夹\Image0036.bmp'));
mat(:,:,038) = im2double(imread('新建文件夹\Image0037.bmp'));
mat(:,:,039) = im2double(imread('新建文件夹\Image0038.bmp'));
mat(:,:,040) = im2double(imread('新建文件夹\Image0039.bmp'));
mat(:,:,041) = im2double(imread('新建文件夹\Image0040.bmp'));
mat(:,:,042) = im2double(imread('新建文件夹\Image0041.bmp'));
mat(:,:,043) = im2double(imread('新建文件夹\Image0042.bmp'));
mat(:,:,044) = im2double(imread('新建文件夹\Image0043.bmp'));
mat(:,:,045) = im2double(imread('新建文件夹\Image0044.bmp'));
mat(:,:,046) = im2double(imread('新建文件夹\Image0045.bmp'));
mat(:,:,047) = im2double(imread('新建文件夹\Image0046.bmp'));
mat(:,:,048) = im2double(imread('新建文件夹\Image0047.bmp'));
mat(:,:,049) = im2double(imread('新建文件夹\Image0048.bmp'));
mat(:,:,050) = im2double(imread('新建文件夹\Image0049.bmp'));
mat(:,:,051) = im2double(imread('新建文件夹\Image0050.bmp'));
mat(:,:,052) = im2double(imread('新建文件夹\Image0051.bmp'));
mat(:,:,053) = im2double(imread('新建文件夹\Image0052.bmp'));
mat(:,:,054) = im2double(imread('新建文件夹\Image0053.bmp'));
mat(:,:,055) = im2double(imread('新建文件夹\Image0054.bmp'));
mat(:,:,
  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值