编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)

针孔相机(pinhole camera)和透镜相机的对比:

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第1张图片编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第2张图片

针孔相机(左)        透镜相机拍摄(右)

针孔相机优点:

1.无色差问题(由折射导致)

2.无限景深

缺点:

我们都知道小孔成像,如果孔过大,导致太多光线穿过小孔在光屏上会形成模糊的光斑,如果小孔偏小,那么成像的亮度就会偏暗,所以针孔相机如何选择才能避免以下两个问题:

1.分辨率低

2.太暗

目标:

提升分辨率+亮度,同时保留针孔相机的优点。

基于上述目标,采用编码孔径作为光圈的方法,拍摄照片如下图:

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第3张图片

Peronal idea(PI):可以看到,这是一个huge mess的图片,不能作为最终结果,但是如果选择合适的编码孔径作为光圈然后,把上面生成的图像放在可控的光圈的设计上(即图片是在可以受光圈的影响的),然后再对上面图像进行重建恢复,就可以得到比普通真空相机高分辨率高亮度的图片。

1.编码孔径的设计:MURA(均匀冗余阵列)

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第4张图片

 (矩阵p*p)

这些像素点的值是怎么来的呢?

它是由公式来计算的。

首先黑色像素点的值是0,白色是1(黑色不透光,白色透光)

原文是这么描述的:

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第5张图片

第一行全为0;

第一列除了(0,0)像素点全为1;

CiCj相乘为1,则填1;

其他情况全填0

解释一下C是什么:

C不是约定俗成的通用符号,是作者自己定义的。

Cq=1

如果q是模p的二次剩余(Quadratic residue),则Cq=1,否则为-1。

二次剩余是数论的内容,简单来说就是X^2除以p的余数,i.e.5^23=8……1,就说:1是模3的二次剩余,那问题来了,跟5的平方有什么关系呢?实际上根据二次剩余的定义:

当存在某个X,式子

成立时,称“d是模p的二次剩余”

5是哪个存在的x,即把1当作模3的二次剩余的解。跟商也没有关系,如果找不到一个数的平方除以3余数为1,那么1就不是3的二次剩余。

那么怎么知道一个数是不是某个数的二次剩余呢?

查表:

横着看,模2的二次剩余由0和1,5的二次剩余由1和4和0.

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第6张图片

 注:有代码可以计算。   

最后,循环位移,左上角的(第一行(全黑)和第一列(全白))像素,把它们移到中心位置,图中类似于十字架的图案。

编码完成后的中间结果:

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第7张图片

2.解码孔径的设计:

基于编码孔径来设计

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第8张图片

 公式:

编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)_第9张图片

 此模式下,MURA中的0被-1替换,但是除了第一行。并且保留循环左移。

参考资料:

Coded Aperture Imaging

你可能感兴趣的:(人工智能,计算机视觉,超分辨率重建,图像处理)