图像处理装置和图像处理方法转让专利

申请号 : CN200710166260.6

文献号 : CN101179644B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 山下纪之

申请人 : 索尼株式会社

摘要 :

一种图像处理装置、照相装置、图像处理方法和程序。图像处理装置包括将多个图像合成为一幅合成图像的合成处理单元。所述多个图像是通过从某个位置向不同的多个方向的多次图像捕捉而拍摄到的。合成处理单元被配置用于通过按照多个被选出的图像的边界被排列成重叠关系的方式在各个边界处执行块匹配处理,来提取参数,基于所述参数对要被合成的所有边界执行块匹配处理,评价所有边界的块匹配处理的结果,并且通过更新光轴方向以减少所有边界的误差来执行图像合成,从而减少误差。

权利要求 :

1.一种用于将从一点向不同方向多次拍摄到的多个图像合成为一幅图像的图像处理装置,包括:用于通过按照多个被选出的图像的边界被布置成重叠关系的方式在各个边界处执行块匹配处理,来提取包括透镜畸变校正系数的参数的装置,用于基于所述参数,对要被合成的所有边界执行块匹配处理的装置,

用于评价对所有要被合成的边界的所述块匹配处理的结果的装置,以及用于通过更新光轴方向以减少所有要被合成的边界中的误差,来执行部分图像的合成,从而减少误差的装置,其中,当提取所述参数时,所述图像处理装置对每个边界执行至少三次块匹配处理,并且确定校正系数,以允许至少四幅部分图像的准确合成,其中对每个边界执行至少三次块匹配处理是对该边界中的至少三个位置执行块匹配。

2.根据权利要求1所述的图像处理装置,其中,在参数被确定之后,所述图像处理装置对所有所述边界中的每个边界执行至少一次块匹配处理,并评价对所有所述边界的所述块匹配处理的结果,并且更新所述光轴方向以减少所有边界中的误差。

3.根据权利要求1所述的图像处理装置,其中,在所述参数被确定之后,所述图像处理装置对所有所述边界中的每个边界执行至少一次块匹配处理,并评价对所有边界的所述块匹配处理的结果,并且更新所述光轴方向以减少所有边界中的误差。

4.根据权利要求1所述的图像处理装置,其中,所述图像处理装置通过除了基准图像之外的图像的平行移动来使所述块匹配处理收敛,从而最小化误差。

5.根据权利要求3所述的图像处理装置,其中,所述图像处理装置通过除了基准图像之外的图像的平行移动来使所述块匹配处理收敛,从而最小化误差。

6.根据权利要求1所述的图像处理装置,其中,所述图像处理装置对要被合成的所有部分图像一致地执行环境光减少校正、对比度增强、饱和度增强和伽马校正。

7.根据权利要求3所述的图像处理装置,其中,所述图像处理装置对要被合成的所有部分图像一致地执行环境光减少校正、对比度增强、饱和度增强和伽马校正。

8.根据权利要求1所述的图像处理装置,其中,所述图像处理装置在合成之后对所有部分图像独立地执行颜色校正,以便减少相邻部分图像之间的色差。

9.根据权利要求7所述的图像处理装置,其中,所述图像处理装置在合成之后对所有部分图像独立地执行颜色校正,以便减少相邻部分图像之间的色差。

10.根据权利要求1所述的图像处理装置,其中,所述图像处理装置在合成之后执行用于将相邻部分图像之间的颜色不连续性减少到检测限以下的颜色校正。

11.根据权利要求9所述的图像处理装置,其中,所述图像处理装置在合成之后执行用于将相邻部分图像之间的颜色不连续性减少到检测限以下的颜色校正。

12.一种用于将从一点向不同方向多次拍摄到的多个图像合成为一幅图像的图像处理方法,所述方法包括以下步骤:通过按照多个被选出的图像的边界被布置成重叠关系的方式在各个边界处执行块匹配处理,来提取包括透镜畸变校正系数的参数;

基于所述参数,对要被合成的所有边界执行块匹配处理;

评价对所有要被合成的边界的所述块匹配处理的结果;以及

通过更新光轴方向以减少所有要被合成的边界的误差,来执行图像合成,从而减少误差,其中,当提取所述参数时,所述方法对每个边界执行至少三次块匹配处理,并且确定校正系数,以允许至少四幅部分图像的准确合成,其中对每个边界执行至少三次块匹配处理是对该边界中的至少三个位置执行块匹配。

13.根据权利要求12所述的图像处理方法,其中,在参数被确定之后,所述方法对所有所述边界中的每个边界执行至少一次块匹配处理,并评价对所有所述边界的所述块匹配处理的结果,并且更新所述光轴方向以减少所有边界中的误差。

14.根据权利要求12所述的图像处理方法,其中,在所述参数被确定之后,所述方法对所有所述边界中的每个边界执行至少一次块匹配处理,并评价对所有边界的所述块匹配处理的结果,并且更新所述光轴方向以减少所有边界中的误差。

15.根据权利要求12所述的图像处理方法,其中,所述方法通过除了基准图像之外的图像的平行移动来使所述块匹配处理收敛,从而最小化误差。

16.根据权利要求14所述的图像处理方法,其中,所述方法通过除了基准图像之外的图像的平行移动来使所述块匹配处理收敛,从而最小化误差。

17.根据权利要求12所述的图像处理方法,其中,所述方法对要被合成的所有部分图像一致地执行环境光减少校正、对比度增强、饱和度增强和伽马校正。

18.根据权利要求14所述的图像处理方法,其中,所述方法对要被合成的所有部分图像一致地执行环境光减少校正、对比度增强、饱和度增强和伽马校正。

19.根据权利要求12所述的图像处理方法,其中,所述方法在合成之后对所有部分图像独立地执行颜色校正,以便减少相邻部分图像之间的色差。

20.根据权利要求18所述的图像处理方法,其中,所述方法在合成之后对所有部分图像独立地执行颜色校正,以便减少相邻部分图像之间的色差。

21.根据权利要求12所述的图像处理方法,其中,所述方法在合成之后执行用于将相邻部分图像之间的颜色不连续性减少到检测限以下的颜色校正。

22.根据权利要求20所述的图像处理方法,其中,所述方法在合成之后执行用于将相邻部分图像之间的颜色不连续性减少到检测限以下的颜色校正。

说明书 :

图像处理装置和图像处理方法

技术领域

[0001] 本发明涉及具有合成多个图像的功能的图像处理装置、照相装置、图像处理方法和程序。

背景技术

[0002] 已知一种通过将照相机设置成远距拍摄(telescope)来从一点向不同方向进行多次拍摄的方法可用于获得广角和高清晰的照片。
[0003] 就合成图像的方法而言,已经提出了多种方法,在这些方法中,得出透镜校正系数并且基于透镜校正系数执行合成处理。例如,在日本专利No.3557168(下文称为“专利文献1”)、日本未审查专利申请公开No.2003-259110(下文称为“专利文献2”)以及日本未审查专利申请公开No.2001-358933(下文称为“专利文献3”)中公开了这样的方法。
[0004] 在专利文献1公开的技术中,基于所拍摄到的两个图像,得出这两个图像之间的多个对应点的坐标,并且计算出这两个图像之间的几何变换的系数。然后,基于对应点的坐标和几何变换的系数计算透镜畸变系数。
[0005] 在专利文献2公开的技术中,得出输入图像相对于纸面和对象的倾斜角度,并且基于这些倾斜角度校正各个输入图像的倾斜。通过使用经过校正的输入图像,或者其经校正的输入图像的数据量被缩减的图像,检测出两个图像的重叠位置。在检测出的重叠位置处连接这两个输入图像。
[0006] 在专利文献3公开的技术中,为多个图像数据中的每个图像数据指定图像合成的基准点,并且基于基准点计算出图像的比例和旋转角度。通过使用计算出的比例和旋转角度,图像数据被缩减并被旋转,以便连接在一起。

发明内容

[0007] 在上述提到的技术中,得出透镜畸变校正系数要求被称为校准的操作,该操作是很复杂的。
[0008] 此外,这些技术旨在合成两个图像。当大量(例如,数千幅)图像彼此结合,而不是一行图像彼此结合时,误差可能会积累,以致逐步显示出所谓的皱纹。这样,执行准确合成是很困难的。此外还存在由透镜特性引起的显著的颜色不均匀。
[0009] 希望提供能够不论合成图像的数量多少,都能执行准确合成并且还能抑制颜色不均匀的发生的图像处理装置、照相装置、图像处理方法和程序。
[0010] 根据本发明的第一方面,提供了一种图像处理装置,该装置包括合成处理单元,合成处理单元用于将通过从某个位置向不同的多个方向的多次图像捕捉而拍摄的多个图像合成为一幅合成图像。合成处理单元(i)通过按照将多个被选出的图像的边界排列成重叠关系的方式执行块匹配处理来提取参数, (ii)基于所述参数对要被合成的所有边界执行块匹配处理,(iii)对关于所有边界的块匹配处理的结果进行评价,并且(iv)通过更新光轴方向以减少所有边界的误差来执行图像合成,从而减少误差。
[0011] 根据本发明的第二方面,提供了一种图像处理装置,该装置包括图像捕捉器件;光学系统,用于将对象图像对焦到图像捕捉器件上;以及图像处理装置,用于处理图像捕捉器件的输出图像信号。图像处理装置具有将从某个位置向不同的多个方向的多次图像捕捉而拍摄到的多个图像合成为一幅合成图像的合成处理单元。合成处理单元(i)通过按照将多个被选出的图像的边界排列成重叠关系的方式执行块匹配处理来提取参数,(ii)基于所述参数对要被合成的所有边界执行块匹配处理,(iii)对关于所有边界的块匹配处理的结果进行评价,并且(iv)通过更新光轴方向减少所有边界的误差来执行图像合成,从而减少误差。
[0012] 根据本发明的第三方面,提供了一种将从某个位置向不同的多个方向的多次图像捕捉而拍摄到的多个图像合成为一幅合成图像的图像处理方法。该方法包括:通过按照将多个被选出的图像的边界排列成重叠关系的方式执行块匹配处理来提取参数;基于所述参数对要被合成的所有边界执行块匹配处理;对关于所有边界的块匹配处理的结果进行评价;并且通过更新光轴方向以减少所有边界的误差来执行图像合成,从而减少误差。
[0013] 根据本发明的第四方面,提供了一种将从某个位置向不同的多个方向的多次图像捕捉而拍摄到的多个图像合成为一个合成图像的程序。该程序使计算机可以执行如下功能:通过按照将多个被选出的图像的边界排列成重叠关系的方式执行块匹配处理来提取参数的功能;基于所述参数对要被合成的所有边界执行块匹配处理的功能;对关于所有边界的块匹配处理的结果进行评价的功能;以及通过更新光轴方向以减少所有边界的误差来执行图像合成,从而减少误差的功能。
[0014] 根据本发明的各个实施例,在合成处理单元中,按照将多个被选出的图像的边界排列成重叠关系的方式在各个边界上执行块匹配处理。然后,通过在每个边界处执行块匹配处理来提取参数。基于所提取的参数,对要被合成的所有边界执行块匹配处理。对关于所有边界作出的块匹配处理的结果进行评价,并且通过更新光轴方向以减少所有边界的误差来执行合成,从而减少误差。
[0015] 这使得不论被合成图像的数量多少,都能够进行准确合成并且同时抑制颜色不均匀的发生。

附图说明

[0016] 在下面对实施例的详细描述中,将会参考附图详细阐述本发明的这些和其它特征和方面。
[0017] 图1是示出根据本发明的优选实施例的采用了图像处理装置的照相装置的配置的示例的框图;
[0018] 图2是示出由实施例的照相装置执行广角拍摄的示例的概念性示图;
[0019] 图3是示出在使用互功率谱(cross power spectrum,CPS)进行移动的拼接图像的示图;
[0020] 图4是用于解释通过块匹配(BM)处理来提取参数的过程的示图,具体地示出了选择条件良好的四个图像的过程;
[0021] 图5是用于解释通过BM处理来提取参数的过程的示图,具体地示出了在边界中的三个位置处执行BM的示例;
[0022] 图6是用于解释通过BM处理来提取参数的过程的示图,具体地示出了透镜畸变的存在导致的BM的弓形结果;
[0023] 图7是用于解释通过BM处理来提取参数的过程的示图,具体地示出了不合适的倾斜角度引起从右到左的误差的示例;
[0024] 图8是用于解释通过BM处理来提取参数的过程的示图,具体地示出了由左右边界中的纵向扩展和收缩的存在引起横向偏差的情况;
[0025] 图9是用于解释通过块匹配(BM)处理来提取参数的过程的示图,具体地示出了在图像旋转中产生的误差的示例;
[0026] 图10A和图10B是用于解释在通过BM提取参数的过程之后的过程的示图,通过对大量图像执行扩展和移动可以最小化误差;
[0027] 图11是合成后图像的天空区域中从左端到右端的像素值的图形表示;
[0028] 图12是在图11的图通过适当给出二次校正系数而被校正后的图形表示;
[0029] 图13是在参数被添加到图12中的图之后的图形表示;
[0030] 图14是用于解释个别颜色校正的示图;以及
[0031] 图15A和图15B是用于解释对边界进行平滑和自动校正的方法的示图。

具体实施方式

[0032] 将参考附图来描述本发明的各个实施例。
[0033] 图1是示出根据本发明的实施例的采用了图像处理装置的照相装置的配置的示例的框图。
[0034] 如图2所示,照相装置10通过从一点向不同方向自动或手动拍摄多次来获得大量的图像(图2中为16×8=128幅)。照相装置10对大量,例如数千幅图像执行精确合成,而不会有皱纹。
[0035] 本发明的实施例的照相装置10包括光学系统11、图像捕捉器件12、模拟前端电路(AFE)13、数字信号处理部分(DSP)14、图像存储器15和显示器16。
[0036] 光学系统11将对象图像对焦到图像捕捉器件12的图像捕捉平面上。
[0037] 图像捕捉器件12例如用CCD(电荷藕合器件)或CMOS(互补金属氧化物半导体)器件来配置。半导体基片上布置成阵列的光学传感器检测由光学系统11获取的对象图像,并且生成信号电荷。图像捕捉器件12通过垂直信号线和水平信号线读取信号电荷,然后输出对象的图像信号。
[0038] AFE电路13移除例如来自图像捕捉器件12的图像信号中包含的固定模式噪声,并通过自动增益控制操作来稳定信号电平,并且得到的图像信号输出给数字信号处理部分14。
[0039] 数字信号处理部分14是用于对来自AFE电路13的输出信号执行颜色校正处理、多个图像的合成处理、自动曝光控制和自动白平衡控制等的电路。
[0040] 数字信号处理部分14具有模数转换器(ADC)141和准确合成处理部分142,模数转换器(ADC)141用于主要将来自AFE电路13的模拟图像信号转换为数字信号,准确合成处理部分142被配置用于使得能够对从一点向不同方向多次拍摄到的大量图像进行不会出现皱纹的准确合成。
[0041] 准确合成处理部分142包括第一颜色校正功能部分143、合成功能部分144和第二颜色校正功能部分145。
[0042] 这样,本实施例的信号处理部分14具有一种功能(例如,软件),通过该功能,从一点向不同方向多次拍摄到的多个图像可以通过校正颜色不均匀而被准确合成为一幅图像。
[0043] 下面具体描述本实施例的准确合成的特征功能。
[0044] 第一颜色校正功能部分143在提取诸如透镜畸变校正系数时对每个边界执行至少三次块匹配(BM),并且对至少四幅图像的边界执行合成,从而确定出允许准确合成的透镜畸变校正系数。换句话说,第一颜色校正功能部分143从原图像中提取出诸如透镜畸变校正系数的参数。
[0045] 随后,第一颜色校正功能部分143对所有部分图像一致地执行环境光减少校正、对比度增强、饱和度增强以及伽马校正。
[0046] 在第一颜色校正功能部分143确定出诸如透镜畸变校正系数的参数并且执行环境光减少校正、对比度增强、饱和度增强以及伽马校正之后,合成功能部分144对所有边界中的每个边界执行至少一次(本实施例中为三次)BM。然后,合成功能部分144通过同时评价所有边界的BM的结果,对多个图像执行准确合成,并且更新光轴方向以减少所有边界的误差。
[0047] 第二颜色校正功能部分145执行颜色(颜色不均匀)校正,该校正是对每个部分图像独立执行的,以便减少由合成功能部分144准确合成的多个图像中相邻图像之间的色差。
[0048] 第二颜色校正功能部分145还执行将相邻图像之间的颜色不连续减少到检测限以下的颜色校正。
[0049] 下面将描述准确合成处理部分142中准确合成处理的理论概念。
[0050] 本实施例主要采用了基于傅立叶分析的相位相关(phase correlation)技术。
[0051] 也就是说,所采用的技术基于傅立叶变换定理,其中,空间函数的变换仅在谱区域的相位中发生改变。
[0052] 具体地,两个函数f1和f2当满足下面的关系。
[0053] f2(x,y)=f1(x+xt,y+yt)
[0054] 另外,还存在下面的谱特性。
[0055] F2(u,v)=F1(u,v)exp(-2πi(uxt+vyt))
[0056] 上述公式可以使用互功率谱(CPS)写成下面的式子。
[0057]
[0058] 其中,F2*是复函数F2的共轭函数。
[0059] 实际上,图像是诸如图3A和图3B所示的两个图像的互功率谱的位噪声(bit noise)。
[0060] 因此希望找到CPS的峰,并且从峰得出平行移动参数(xt,yt)。
[0061] 图3A和图3B是示出使用互功率谱(CPS)进行移动的拼接图像的示图。
[0062] 图3A示出两个图像的拼接结果。如图3B所示,可以通过检测CPS的峰来实现二维移动。这里,如果CPS可读,则图像完全匹配。
[0063] 因为在具有这样的噪声的图中检测最大峰是很困难的,所以可以选出一些峰。
[0064] 接着,将参考图4到图11描述通过使用块匹配(BM)处理来提取参数的原理。
[0065] BM包括得出上述互功率谱(CPS)的峰的功能。
[0066] 现在参考图4,选出了具有条件良好的四个图象IM0、IM1、IM2和IM3。
[0067] 假定,例如,安排在示图左下侧的图像是第零图像IM0,其右侧的图像是第一图像IM1,左上侧的图像是第二图像IM2,其右侧的图像是第三图像IM3。这些图像IM0到IM3被布置为在相邻图像的边界中包括重叠部分。
[0068] 在图4中,安排在边界区域中的矩形是块BLK。
[0069] 这样,BM是在上述配置条件下被执行的。
[0070] 然后,从分别位于下侧、左侧、右侧和上侧区域中的四个边界BDR01、BDR02、BDR013、BDR23中得出透镜畸变信息、视角和倾斜角度。
[0071] 将进一步描述BM。
[0072] 如图5所示,对边界中的三个位置执行BM。
[0073] 如图6所示,透镜畸变的存在引起BM的弓形结果。
[0074] 如图7所示,任何不合适的倾斜角度会导致BM的结果中出现横向倾斜误差。
[0075] 如图8所示,当透镜畸变的中心纵向偏移时,在上下边界出现横向膨胀和收缩。透镜畸变的中心的横向偏移会导致右左边界的纵向膨胀和收缩。
[0076] 如图9所示,当图像向上旋转时,出现了纵向倾斜误差。也就是说,图9示出当照相机相对于机械倾斜轴没有朝向前方时的结果。
[0077] 各种参数被确定用于最小化这些误差。
[0078] 这使得即使在任意四幅图像被结合在一起时,误差能够被减小。
[0079] 例如,快速相位相关匹配被应用于在图像中执行对应的BM。各个参数可以通过获取矢量移位(xij,yij)并通过分析三个块的移位行为来被量化。
[0080] 如图10A和图10B所示,在对上述四幅图像执行BM之后,通过对大量图像执行扩展并且同时并行评价所有边界的BM的结果,并且通过更新光轴方向以减少所有边界中的误差,对多幅图像执行准确合成。
[0081] 在这种情况下,基准图像被确定,并且其它图像被平行移动(按平行方式移动),从而在此位置处收敛,从而最小化误差。
[0082] 准确合成处理是根据下面的主要处理步骤来执行的,这些步骤如下被逐项列出。
[0083] 通过移动得出移位的最佳位置。
[0084] 在这种情况下,执行循环。
[0085] 将指示总移位量的参数fxy设置成0.0。
[0086] 所有上侧、下侧、右侧和左侧(纵向的和横向的)图像被处理。
[0087] 基准图像保持不被移位。
[0088] 从BM的结果中得出与相邻图像的位置关系。基于此,计算出移位量。
[0089] 其方法如下。添加正上方的图像和其右侧相邻的图像,并且减去正下方的图像和其左侧相邻的图像,从而得到平均,这被表达为f[y][x].x,f[y][x].y。
[0090] 其80%被添加到当前图像的中心位置,并被认为是新图像的中心位置。
[0091] 将所有图像的移位量的绝对值总和被输入fxy。
[0092] 作出计算,以确认上述移位是对纵向和横向位置关系改善了多少。
[0093] fxy具有通过重复上述移位而变小的性质(特性)。
[0094] 换句话说,fxy被收敛到没有另外的移位可以被执行的状态。
[0095] 当fxy充分小时,处理过程终止。
[0096] 将对即使在数千幅照片的情况下也不会出现皱纹的图像合成的特定处理的示例实施例作出描述。
[0097] 现在考虑四幅图像的情况。
[0098] 如图4所示,假定左下侧图像是第零图像IM0,其右侧相邻的图像是第一图像IM1,左上侧图像是第二图像IM2,其右侧相邻的图相是第三图像IM3。
[0099] 第零图像保持不被移位。也就是说,第零图像被用作基准图像。
[0100] BM的结果的横向分量被表示成bx1[0]、bx1[1]、bx2[0]和bx2[1]。
[0101] 纵向分量也被单独处理。然而,为了描述的目的,下面仅描述对横向分量的处理。
[0102] bx1表示右和左,bx2表示上和下。“[]”中的数字0表示下或左。
[0103] 当相对于基准图像IM0的右侧或上侧图像被置于右侧或上侧时,BM结果是一个正值。
[0104] 作为极端的示例,假定仅有一个反常值,并且bx1[0]=10、bx1[1]=0、bx2[0]=0,以及bx2[1]=0。
[0105] 考虑在第一行存在一个横向的10像素的偏移,并且其它三个边界都没有偏移。
[0106] 如果第一图像IM1的位置是由第零图像IM0和第一图像IM1的BM结果确定出的,则第三图像IM3的位置由第一图像IM1和第三图像IM3的BM结果来确定,并且第二图像IM2的位置由第二图像IM2和第三图像IM3的BM结果来确定,10像素的大值可能会作为第零图像IM0和第二图IM2之间的位置关系中的皱纹出现。
[0107] 在示例性实施例中,本实施例的系统指示反常值“10”的影响以2.5分散。该处理是在一个程序下被执行的,该程序的一部分将会在后面描述。
[0108] 通过xypos()从与相邻图像的位置关系中找出平行移动的量。
[0109] 对于第一次,计算出第一图像IM1应当移位-5像素。
[0110] 第一图像是通过move()被平行移动的。
[0111] 实际的移位量是它的80%,即,4个像素。
[0112] 除了图像IM0之外的图像IM1、IM2和IM3的移位量分别为pox[1]=4,pox[2]=0,pox[3]=0。
[0113] 对于此,BM结果bx1[0]从10被改变成6。
[0114] 从而,bx2[1]从0被改变成4。
[0115] 对于第二次,计算出第一图像IM1应当移位-1像素。
[0116] 计算出第三图像IM3应当移位-2像素。
[0117] 当其80%,即0.8个像素被添加时,pox[1]=4.8。
[0118] 随后,类似的计算从第三次进行到第三十二次。对于第三十二次,移位量fxy的总和小于0.001像素,然后,处理过程终止。
[0119] 此时,要被平行移动的像素数是7.5、2.5和5.0。各个图像的位置关系被改变成如下所述。即,bx1[0]=10被改变成bx1[0]=2.5,bx1[1]=0被改变成bx1[1]=-2.5,bx2[0]=0被改变成bx2[0]=-2.5,并且bx2[1]=0被改变成bx2[1]=2.5。可以看出误差被分散了。
[0120] 下面列出了当ii=32、fxy=0.00083,即fxy不大于0.001时的次数和其值。
[0121] n ix fx[n] fy[n]
[0122] 0 0 0.000000 0.000000
[0123] 1 2 -0.000244 0.000000
[0124] 2 2 -0.000244 0.000000
[0125] 3 2 -0.000344 0.000000
[0126] n pox[n] poy[n] fz[n] 要被平行移动的像素数
[0127] 0 0.00 0.00
[0128] 1 7.50 0.00
[0129] 2 2.50 0.00
[0130] 3 5.00 0.00
[0131] 下面是示例程序的一部分。
[0132] ______________________程序的一部分(从这里开始)_________________clrpos();//对要被平行移动的量[像素]pox[]、fzx[]和rolla[]输入0。
[0133] for(ii=0;ii<1000;ii++){
[0134] xypos2();//从与相邻图像的位置关系中找出要被平行移动的量。
[0135] if(fxy<0.001){break;}
[0136] move();//平行移动。
[0137] }
[0138] fprintf(inf,“ii=1230484,fxy=0.00000 fxy不大于0.001时的次数和其值n”,ii,fxy);
[0139] xypos();//从与相邻图像的位置关系中找出平行移动量。
[0140] move();//平行移动。
[0141] dsppos();//显示校正量。
[0142] angle();//将校正量转换为角度,并且更新qq[n]、pp[n]。
[0143] dsppos();//显示校正量。
[0144] dsperr();//显示在一对小图像之间的误差超过1的值。
[0145] step();//从qq[n]、pp[n]创建步进角度。
[0146] _____________________程序的一部分(到这里为止)______________ [0147] 下面是主子程序。
[0148] ______________________ 主 子 程 序 _____________________________void xypos2(){//从与相邻图像的位置关系中找出平行移动量fx[n]、fy[n],[0149] //找出不能被平行移动的标记fz[n]。(删除fprinf)
[0150] int m,n,m2,n2,h,v,ix;
[0151] double cx,cy;
[0152] //fprintf(inf,“n ix fx[n] fy[n] n”);
[0153] fxy=0;
[0154] for(v=0;v<ny;v++){//对于所有图像
[0155] for(h=0;h<nx;h++){
[0156] m=(nx-1)*v+h;//左右边界
[0157] n=nx*v+h;//上下边界
[0158] ix=0;
[0159] if((0<skip[h][v])||((v==(ny-1)/2)&&(h==(nx-1)/2))){//中心图像和确定的标记图像不被移动。
[0160] fx[n]=;fy[n]=0;fz[n]=4;//fz[n]是不能被平行移动的标记[0161] if(skip[h][v]==2){fz[n]=2;}//确定标记图像为2
[0162] }else{
[0163] cx=0;cy=0;
[0164] if(v!=0){//当不是最低行时
[0165] n2=n-nx;//正下方
[0166] if(0<fok2[n2]){
[0167] ix++;
[0168] cx-=bx2[n2];//减去正下方
[0169] cy-=by2[n2];
[0170] }
[0171] }
[0172] if(v!=ny-1){//当不是最高行时
[0173] if(0<fok2[n]){
[0174] ix++;
[0175] cx+=bx2[n];//自加
[0176] cy+=by2[n2];
[0177] }
[0178] }
[0179] if(h!=0){//当不是最左端时
[0180] m2=m-1;//左侧相邻
[0181] if(0<fok1[m2]){//
[0182] ix++;
[0183] cx-=bx 1[m2];//减去左侧相邻
[0184] cy-=by1[m2];
[0185] }
[0186] }
[0187] if(h!=nx-1){//当不是最右端时
[0188] if(0<fok1[m]){
[0189] ix++;
[0190] cx+=bx1[m];//自加
[0191] cy+=by1[m];
[0192] }
[0193] }
[0194] if(ix==0){
[0195] fx[n]=0;fy[n]=0;fz[n]=1;
[0196] }else{
[0197] fx[n]=cx/ix;
[0198] fy[n]=cy/ix;
[0199] fz[n]=0;
[0200] }
[0201] fxy+=fabs(fx[n])+fabs(fy[n]);
[0202] }
[0203] }
[0204] }
[0205] }
[0206] //*********************************************************** [0207] void move(){//平行移动。
[0208] int m,n,h,v;
[0209] for(v=0;v<ny;v++){//图像的中心位置(像素)
[0210] for(h=0;h<nx;h++){
[0211] n=nx*v+h;
[0212] if(fz[n]==0){//当没有从周围隔离时
[0213] pox[n]+=-fx[n]*0.8;
[0214] pox[n]+=-fy[n]*0.8;
[0215] }
[0216] }
[0217] }
[0218] for(v=0;v<nx;v++){//横向位置关系
[0219] for(h=0;h<nx-1;h++){
[0220] n=nx*v+h;
[0221] n=(nx-1)*v+h;
[0222] bx1[n]+=-(fx[m]-fx[m+1])*0.8;
[0223] by1[n]+=-(fy[m]-fy[m+1])*0.8;
[0224] }
[0225] }
[0226] for(v=0;v<ny-1;v++){//纵向位置关系
[0227] for(h=0;h<nx;h++){
[0228] n=(nx)*v+h;
[0229] bx2[n]+=-(fx[n]-fx[n+nx])*0.8;
[0230] by2[n]+=-(fy[n]-fy[n+nx])*0.8;
[0231] }
[0232] }
[0233] }
[0234] //***************************************************************** [0235] 接着,将对根据本发明的本实施例的第一颜色校正功能部分143进行的颜色校正处理的特定示例作出描述。
[0236] [颜色校正处理的流程]
[0237] 环境光减少系数分别被假设为B、G、R,并且二次、四次和六次分别表示为bk2、bk4、bk6,和gk2、gk4、gk6以及rk2、rk4、rk6。
[0238] 固定量被表示为m_bot。
[0239] 对中心偏移给定像素数,并且表示为m_xo、m_yo。
[0240] 单位是像素数,并且当应用到等倍放大的图像时,有必要最后作出改变。替代地,可以采用比率。
[0241] 黑水平(black level)和白水平(white level)被用于执行对比度增强,并且被分别表示为m_black,m_white。
[0242] 伽马被表示为m_gamma。
[0243] 饱和度被表示为m_sat。
[0244] 用于单独校正每个图像的亮度的系数文件MEIHOSE.DAT的值被表示为mei[n][k]。
[0245] “n”表示图像标号;“k”表示三个颜色的标号;并且width和height表示图像的尺寸(单位:像素)。
[0246] 通过按照下述步骤操作这些参数来确定像素值。
[0247] 处理所有图像中的所有像素。
[0248] 找出从目标坐标(xp,yp)到自环境光减少特性的中心的距离“dist”。
[0249] xc=width/2+m_xo
[0250] yc=height/2+m_yo
[0251] dist=sqrt((xp-xc)*(xp-xc)+(yp-yc)*(yp-yc))
[0252] 用于每个颜色的环境光减少的校正倍率yy[i]如下。
[0253] n1=2*dist/height
[0254] n2=n1*n1
[0255] yy[0]=((bk6*n2+bk4)*n2+bk2)*n2+1
[0256] yy[1]=((gk6*n2+gk4)*n2+gk2)*n2+1
[0257] yy[2]=((rk6*n2+rk4)*n2+rk2)*n2+1
[0258] 像素值B、G、R是在校正之前从图像存储器中得到的。
[0259] 这些被分成亮度信号y和色差信号cb和cr。
[0260] y=0.114*B+0.587*G+0.299*R
[0261] cb=B-y
[0262] rb=R-y
[0263] 色差信号cb和cr的饱和度被增强并分别被转换为B、G和R。
[0264] c[0]=m_sat*cb+y
[0265] c[2]=m_sat*cr+y
[0266] c[1]=(y-0.114*c[0]-0.229*c[2])/0.587
[0267] 对比度增强倍率gain如下。
[0268] gain=255/(m_white-m_black)
[0269] 对三种颜色(k=0到2)执行对比度增强。
[0270] ch=gain*(c[k]-m_black)
[0271] 当m_gamma不是1时,ch被限制为0到255,并且,gamma按照如下校正。
[0272] ch=pow(ch/255,1/m_gamma)
[0273] 接着,作出环境光减少。
[0274] ch=yy[k]*(ch+m_bot)-m_bot
[0275] 作出单独亮度校正。
[0276] ch=(1000+mei[n][k]/1000*ch+0.5)
[0277] 在ch被限制为0到255之后,其被转换成1字节的数。
[0278] 对三种颜色的前述处理产生了经颜色校正之后的BMP(位图)。
[0279] 在本实施例中,在执行前述颜色校正和图像合成之后,如上面所描述的,第二颜色校正功能部分145减小了由合成功能部分144准确合成的多个图像中的相邻图像之间的色差。因此,颜色(颜色不均匀)校正是对所有部分图像独立(单独)作出的。
[0280] 第二颜色校正功能部分145还执行用于将相邻图像之间的色差减小到检测限以下的颜色校正。
[0281] 下面将参考图11到图15B描述单独的颜色不均匀校正。
[0282] 图11是合成图像的天空区域中从左端到右端的像素值的图形表示。
[0283] 图12是图11的图通过适当给出二次校正系数而被校正后的图形表示。
[0284] 图13是在参数被添加到图12中的图之后的图形表示。
[0285] 如图11所示,弓形曲线表示对于三种颜色可以独立地得到透镜的环境光减少特性。
[0286] 参看通过适当给出二次校正系数作出校正之后的图12中的示图,很容易达到正确的校正系数。在这样的情况下,所有图像都没有弓形结构,然而,出现了图像的右侧明亮的现象。
[0287] 虽然环境光减少特性被处理为到透镜中心的距离的系数,但是,这种现象的原因可以认为是中心被偏移。
[0288] 如图13所示,参数的添加可以消除右侧明亮的现象。
[0289] 然而,各个图像的颜色保持互不相同。
[0290] 对于此,通过为单独的颜色校正创建校正系数文件,并且给出用于使图平滑的系数,天空颜色的不连续可以完全消失。
[0291] 图14是用于解释单独的颜色校正的示图。
[0292] 图15A和图15B是用于解释对边界进行平滑和自动校正的方法的示图。
[0293] 在图14所示的示例中,通过将八个矩形(例如,方块BLK40到BLK48(除了BLK44))布置在位于IM0到IM8的9(3×3)个图像的中心的图像IM4的周围,以使他们分别与IM0到IM3、IM5到IM8相对,以及通过在其它图像中放置方块BLK01、BLK11、BLK21、BLK31、BLK51、BLK61、BLK71和BLK81,来得到各个块的辉度(luminance)值。
[0294] 图像的像素值然后被校正,以最小化对应块之间的辉度值的差。
[0295] 如果在环境光减少校正中保留有小的灰度误差,则可能出现亮度被纵向或者横向改变的现象。
[0296] 通过将该误差用作评价系数,可以消除灰度误差。
[0297] 在图15A和图15B中所示的示例中,20个方块被排列在图像IM4中。
[0298] 如图15A和图15B所示,为了平滑且自动地校正边界,块P和Q的像素值的平均值被用作目标值T,并且通过二次曲线作出用于获得目标值T的校正,而不需改变分别为图像IM4和IM5的中心A和B的像素值。
[0299] 下面将描述与图14到图15B有关的自动颜色不均匀校正的特定示例。
[0300] [第一处理内容]
[0301] 获取参数。
[0302] 读取尺寸数据(SIZE.DAT)。
[0303] 通过kidolpf()将八个正方块置于边界处,并且取得它们的辉度值。
[0304] nlpf是正方块的尺寸。
[0305] kidobgr[][][][]输入(BGR,i,j,位置)
[0306] 处理所有图像。
[0307] 通过movey()将kidobgr[][][][]改变成辉度信号,并且将相同的值输入BGR的三个值。
[0308] 通过move()在kidobgr2[][][][]处复制kidobgr[][][][]。
[0309] (下文中,kidobgr[][][][]保持不变,而kidobgr2[][][][]将会改变。) [0310] 通过kidoer2()从kidobgr2[][][][]获取辉度值的误差kidosa[][]。
[0311] kidosa[][]是用于某个图像应当沿着减少与周围图像的差的方向移位的量。
[0312] kidosamax是所有图像的kidosa[][][]的最大值。
[0313] 它是目标图像的对应区域的辉度值的差的平均。对于拐角,目标是斜对的相邻图像。
[0314] 通过meiclr()将“0”输入亮度校正系数meiho[][][]。
[0315] 以下,继续重复操作。
[0316] 通过meiadd()将kidosa()的一半添加到meiho[][][]。
[0317] 假定基准图像的亮度保持不变。
[0318] 通过inten(),利用meiho[][][][]校正kidobgr[][][][],从而创建kidobgr2[][][]。
[0319] (每次执行此步骤时,kidobgr2[][][][]和meiho[][][]分别接近正确的值。) [0320] 通过kidoer2()取得来自kidobgr2[][][][]的辉度值误差kidosa[][][]。
[0321] (每次执行此步骤时,kidosa[][][]接近0。)
[0322] 重复该过程,直到kidosamax<0.1(kidosamax表示kidosa[][][]的绝对值的最大值)。
[0323] 这里,meihodc[1]是亮度校正系数的平均值,meihox[1]是亮度校正系数的横向偏置,meihoy[1]是亮度校正系数的纵向偏置。
[0324] 当环境光减少校正的中心偏移不正确时,亮度校正系数的横向偏置和纵向偏置增加。因此,在作出改变以便使其数值接近0之后执行再次运行。
[0325] 当meihox[1]和meihoy[1]接近0时,整个区域基本上是平的。
[0326] [第二处理内容]
[0327] 通过将颜色不均匀减小到限值,来平滑地对边界进行颜色校正。
[0328] 获取参数。
[0329] 读取尺寸数据(SIZE.DAT)。
[0330] 通过kidolpf20A()将20个方块置于边界处。
[0331] 通过kidolpf20()将20个方块置于边界处,并且取得它们的像素值。
[0332] nlpf是方块的尺寸。
[0333] 100倍的值被输入kidobgr[][][][](BGR,i,j,位置)。
[0334] 对所有图像执行此步骤。
[0335] 通过kidoer2C()取得环境微调倍率kidohi[h][i][j][10]。
[0336] 自身像素值和对象像素值之间平均值被用作目标值。
[0337] 该值是倍率的1000倍,通过该值,自身像素的像素值可以达到目标值。
[0338] 通过recdata12C()创建kidodata.txt。
[0339] 通过recdata13C()将kidohi[h][i][j][20]的10倍的值写入shuuhen.txt。
[0340] 写入shuuhen.txt中的环境微调倍率被用来校正各个图像的颜色。
[0341] 这些数据是20个离散的值。连接这些数据的线性值是通过比例分布来确定的。
[0342] 图像处理的步骤如下。
[0343] 中心像素值0(0,0)对于所有像素值P(x1,y1)都不变。
[0344] 从0到P的与边界线的交点被表示为Q(x2,y2)。
[0345] 利用介于两个环境微调倍率数据之间的Q,根据这两个环境微调倍率数据执行线性插值。
[0346] 这里使用了一个系数,该系数假定像素值以与到中心的距离的二次方成比例变化。
[0347] 该处理是与各种类型的颜色校正同时被执行的,并且在MEI中写出。
[0348] 下面将描述平滑颜色校正中的特征处理过程的示例的内容。
[0349] 从MEIHOSE.DAT输入校正值。
[0350] 从SHUUHEN.TXT输入平滑校正值shu[n][h][i]。
[0351] (n:图像编号 h:20点 i=0:x i=1:y i=2:B i=3:G i=4:R) [0352] 通过给出黑水平、伽马、白水平、饱和度倍率、环境光减少系数和MEIHOSEI.DAT来作出校正。
[0353] 在x和y中,图像的中心是原点,并且对所有像素执行操作。
[0354] “ang”表示连接(ys,xs)和原点的直线的方向。
[0355] ang=atan2(ys,xs)
[0356] 当从原点沿着ang的方向延伸的直线通过边界线时,找出20个点中的最近两点poia和poib。
[0357] 令连接两点poia和poib的直线为y=a11*x+b11,得出a11和b11。
[0358] 找出该直线和从原点沿着ang的方向延伸的直线的交点坐标,并将其写为(xq,yq)。
[0359] 找出用于按比例分布的系数k11,该系数表示xq和yq远离poia和poib的程度。 (当其接近poia时,该系数为0,当其接近poib时,该系数为1。)
[0360] 根据通过比例分布,从poia和poib的倍率得出边界区域中的GBR的倍率gq[w]。
[0361] 假定颜色校正倍率可以取决于公式y=1+k22*r*r,该倍率与到原点距离的二次方成比例,系数k22[w]可以通过下面的公式得到,因为边界区域的倍率是gq[w]。
[0362] k22[w]=(gq[w]1)/(xq*xq+yq*yq)
[0363] 下面的公式表示任意位置(xs,ys)的颜色校正倍率gp[w]。
[0364] gp[w]=1+k22[w]*(xs*xs+ys*ys)
[0365] 接着,将对作为上述配置的示例的准确合成处理的示例作出描述。
[0366] (1)缩小原图像。
[0367] (2)在没有任何准确合成的情况下,被缩小了的图像通过将其投影到圆柱体而被合成。
[0368] 圆柱体的中心是双轴活动云台的旋转中心。
[0369] 例如,当对存储器存在限制时,纵坐标被作为纬度,而不是高度。
[0370] 所有原图像的光轴方向的经度和纬度数据被给出作为文本文件中的初始值。
[0371] (3)执行环境光减少校正,以得出校正系数。
[0372] 在所有的原图像都排列在他们的理想位置的状态中,对于每个GBR分量的辉度值的图片被创建,并且包含重叠区域的辉度值中的少量高频分量的区域被挑出。
[0373] 蓝色天空或者白色墙壁可以被自动检测出。
[0374] 这是因为在包含大量高频分量的区域中,环境光减少特性不能被准确检测出来。
[0375] 环境光减少校正函数是一个四次函数,其中从屏幕的中心向纵向和横向移位的位置(x1,y1)被用作基准,并且二次和四次系数被给出了到该位置的距离。
[0376] 该函数的系数被改变,以最小化重叠区域中的辉度值差。
[0377] (4)执行每个图像的亮度校正,以得出校正系数。
[0378] 即使对于完全的环境光减少校正,在一些情况下,外貌也是不清楚的。
[0379] 例如,当存在相邻图像之间的辉度差时作出校正,例如,在荧光等下以高速快门拍摄。
[0380] 有必要使用这样的校正函数来统一地减少明亮图像和暗色图像中的误差。
[0381] (5)使用这样得到的校正系数,对没有缩小的原图像执行每个图像的环境光减少校正和亮度校正。当最终的输出图像经对比度增强、伽马校正、颜色浓度增强时,通过批处理来处理这些图像。
[0382] 从这里开始准确合成。从经过了环境光减少校正、每个图像的亮度校正、对比度增强、伽马校正和颜色浓度增强的各个处理的图像中得出位置关系。
[0383] 从这里开始使用原图像。
[0384] (6)选出中心处条件良好的四幅图像,并且通过图像匹配得到纵向和横向相邻图像的重叠部分的位置关系。
[0385] (7)这些数据被用来获得透镜畸变、下视角、视角和云台的步进角度。
[0386] (8)选出上下区域中条件良好的四幅图像,并且通过图像匹配得到纵向和横向相邻图像的重叠部分的位置关系。
[0387] (9)这些数据被用来获得更准确的视角、误差和云台的步进角度的特性。
[0388] 这里所使用的术语“条件良好的图像”意味着具有强对比度的不平滑图像,在这样的图像中,视差的影响可以忽略不计,深度很小,并且没有正在移动的对象。
[0389] 对于所有图像通用的参数可以通过前述操作来得到。然后,将开始整个拼接。
[0390] 例如,在多达102幅的图像从端部一个接一个地连接起来的方法中,皱纹会积累起来,从而导致断裂。
[0391] 因此,102幅图像中的所有的80个边界都同时被监视,以调整各个图像的位置来最小化它们的误差。
[0392] 这里,障碍是条件不良的边界存在。
[0393] 如果所有边界都是条件良好的,则使用已经得到的参数的处理几乎可以完全消除误差。
[0394] 其原因是仅仅使用了一个照相机来拍摄这些图像。
[0395] 实际上,102幅图像的所有的80个边界都条件良好是几乎不可能的,并且这些边界经常包含有条件不良的部分。
[0396] 这里所使用的术语“条件不良”包括下面的情形,其中,(a)例如天空和墙壁的辉度值均匀;(b)存在通常正在移动的对象,例如,起伏不平的海面、随风摆动的树叶、飘扬的旗帜、流动的瀑布和流动的云;(c)存在诸如人、车、或者鸟的正在移动的对象,并且重叠区域的仅仅一侧被拍摄或呈现在不同的位置处;(d)云遮蔽了太阳,从而亮度被改变,或者形成的影子被改变;以及(e)近距离拍摄的栅栏引起了由于视差而产生的偏移。
[0397] 非常希望仅仅利用通过准确识别这些条件不良部分并且无误地消除它们而产生的正确位置关系的数据,来实现收敛。
[0398] 横向重叠区域的宽度约为2560个水平像素数的10%,即约250像素。
[0399] 该区域的纵向大小约为1920像素的纵向像素数。
[0400] 该区域以64×64的区域为1个单位经过BM(块匹配)处理。
[0401] 当左右两幅图像仅通过移位而彼此纵向和横向重叠时,至少一个重要的块可能会出现在重叠区域。
[0402] 在重叠区域的上下部分之间的位置关系中存在横向偏移的情况意味着下视角被偏移,或者类似情况。
[0403] 在重叠区域的上下部分之间的位置关系中存在纵向偏移的情况意味着左右纵向尺寸互不相同。
[0404] 在重叠区域的上下和中间的位置关系是弓形而非线性的情况是由于存在镜头畸变的影响。
[0405] 因此,需要对重叠区域的较长边方向的至少三个重要块检测镜头畸变。
[0406] (10)这里,分别在左右重叠区域中的较长边方向配置有四个块,在上下重叠区域中的较长边方向配置有五个块。
[0407] (11)图被创建,其中,横坐标表示重叠区域的较长边的方向,纵坐标表示BM处理结果的偏移。这被认为是基于最小二乘法的抛物线,并且得到其系数。
[0408] 二次系数通过镜头畸变校正基本上为0。
[0409] 如果准确设定机械特性和视角、步进角、下视角,一次系数基本上为0。
[0410] 零次系数包含因有限机械精度而引起的误差。
[0411] 例如,当预定的照相机配置有400mm远摄镜头时,1像素是1/1968度,并且1/100度的误差的存在会引起10像素的偏移。
[0412] (12)通过使用零次系数,所有图像的方向都被改变,从而减小了整体误差。
[0413] 如上面所述,本实施例包括第一颜色校正功能部分143、合成功能单元144和第二颜色校正功能单元145。第一颜色校正功能单元143在提取诸如透镜畸变校正系数之类的参数时,对每个边界执行至少三次BM,并且在至少四个图像的边界中执行合成。然后,部分143确定出透镜畸变系数,以便实现准确合成。也就是说,部分143从原图像中提取诸如透镜畸变校正系数之类的参数,并且对所有部分图像统一执行环境光减少、对比度增强、饱和度增强和伽马校正。在确定出诸如透镜畸变校正系数之类的参数,并且执行环境光减少校正、对比度增强、饱和度增强和伽马校正之后,合成功能部分144对每个边界执行至少一次(在本实施例中为3次)BM。然后,部分144通过对关于所有边界的BM结果进行评价,执行用于减少多个图像中的误差的准确合成,并且更新光轴的方向,以减少所有边界中的误差。第二颜色校正功能单元145执行颜色(颜色不均匀)校正,该校正是对每个部分图像独立地执行的,以便减少通过合成功能单元144准确合成的多个图像中相邻图像之间的色差。第二颜色校正功能单元145还执行用于将相邻图像之间的颜色不连续减少到检测限以下的颜色校正。
[0414] 这使得不管图像数量如何,都能进行准确合成并且同时抑制颜色不均匀的出现。
[0415] 透镜畸变校正系数可以从实际拍摄的图像中提取出。这消除了复杂的校准操作的必要性,大大改善了准确度。
[0416] 使用即使结合数千幅图像也不会有皱纹的方法,可以以必要的分辨率来拍摄必要的范围,而不需要注意拍摄的次数。
[0417] 虽然本发明已经描述了这样的情况,其中,在第一颜色校正功能单元143中的处理、在合成功能单元144中的处理,以及在第二颜色校正功能部分145中的处理是按所谓的顺序执行的,然而,这不受限制,可应用各种方式。例如,某种程度上,颜色校正可以在执行准确合成之后作出。
[0418] 本领域的技术人员应当明白,根据设计需求可以出现多种修改、组合、子组合和替代,并且其它要素也落入所附权利要求的范围或者其等同范围。
[0419] 本申请要求2006年11月6日向日本专利局提交的日本专利申请No.2006-300917的优先权,其全部内容通过参考被结合于此。