一种立体图像颜色和深度编辑方法
技术领域
本发明涉及一种图像信号的处理方法,尤其是涉及一种立体图像颜色和深度编辑方法。
背景技术
随着3D技术的快速发展,立体图像和立体视频已越来越受到人们的关注和喜爱。特别是随着手机、平板和个人电脑的发展,移动端的显示越来越受到用户们的欢迎。然而,在移动端屏幕上显示立体图像和立体视频时,立体感会随之减弱甚至消失,内容制造者试图通过调整颜色和深度来使观看者将注意力集中在该对象上,以提升该对象的立体感。因此,对于在移动端屏幕上显示立体图像和立体视频时,内容编辑可以增强该对象的关注度和深度感。
颜色传递是将指定的目标图像的颜色传递给原图像,具有较为广泛的应用前景,但对于立体图像,颜色传递需要保持左、右视点的深度一致性。立体图像内容编辑的目的是要保持处理后的立体图像颜色传递效果一致且具有更好的观看体验。在观看立体图像时,由于左、右视图视差的存在使得人们可以感知到深度信息。越大的视差会带来越强烈的立体感,但是在人类视觉***中对立体的感知有一个适当的范围,称之为舒适感知区域。超出舒适感知区域的过大视差会引起视觉不舒适现象。因此,考虑在进行颜色传递的同时进行非线性视差调整,使调整后的立体图像观看效果更舒适是值得研究的。
发明内容
本发明所要解决的技术问题是提供一种立体图像颜色和深度编辑方法,其根据用户选择能够有效地调整立体图像的颜色和深度。
本发明解决上述技术问题所采用的技术方案为:一种立体图像颜色和深度编辑方法,其特征在于包括以下步骤:
步骤一:将待处理的宽度为W且高度为H的立体图像的左视点图像、右视点图像及左视差图像对应记为{IL,i(x,y)}、{IR,i(x,y)}及{dL(x,y)};将用户提供的宽度为W'且高度为H'的参考图像记为{IT,i(x',y')};其中,1≤x≤W,1≤y≤H,i=1,2,3分别表示RGB颜色空间的三个分量,RGB颜色空间的第1个分量为红分量、RGB颜色空间的第2个分量为绿分量、RGB颜色空间的第3个分量为蓝分量,IL,i(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第i个分量的值,IR,i(x,y)表示{IR,i(x,y)}中坐标位置为(x,y)的像素点的第i个分量的值,dL(x,y)表示{dL(x,y)}中坐标位置为(x,y)的像素点的像素值,1≤x'≤W',1≤y'≤H',IT,i(x',y')表示{IT,i(x',y')}中坐标位置为(x',y')的像素点的第i个分量的值;
步骤二:在{IL,i(x,y)}中用户通过编辑操作手工选择对象;然后将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的每个分量的值按序排列构成一个列向量,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第1个分量的值构成的列向量记为xO,1,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第2个分量的值构成的列向量记为xO,2,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第3个分量的值构成的列向量记为xO,3;再根据xO,1、xO,2和xO,3,得到{IL,i(x,y)}对应的值矩阵,记为xO,其中,xO,1、xO,2和xO,3的维数均为num×1,xO的维数为3num×1,num表示{IL,i(x,y)}中落于用户选择的对象内的像素点的总个数;
将{IT,i(x',y')}中的所有像素点的每个分量的值按序排列构成一个列向量,将{IT,i(x',y')}中的所有像素点的第1个分量的值按序排列构成的列向量记为xT,1,将{IT,i(x',y')}中的所有像素点的第2个分量的值按序排列构成的列向量记为xT,2,将{IT,i(x',y')}中的所有像素点的第3个分量的值按序排列构成的列向量记为xT,3;再根据xT,1、xT,2和xT,3,得到{IT,i(x',y')}对应的值矩阵,记为xT,其中,xT,1、xT,2和xT,3的维数均为num'×1,xT的维数为3num'×1,num'表示{IT,i(x',y')}中的像素点的总个数,num'=W'×H';
步骤三:对xO进行多元高斯分布拟合,拟合得到xO的多元高斯概率密度函数,记为f(yO),然后以(α,m,M)来表示xO的颜色分布;其中,f()为函数表示形式,yO=xO-μO,μO表示xO的均值向量,μO,1表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第1个分量的值的平均值,也即为xO,1中的所有元素的值的平均值,μO,2表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第2个分量的值的平均值,也即为xO,2中的所有元素的值的平均值,μO,3表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第3个分量的值的平均值,也即为xO,3中的所有元素的值的平均值,Γ()表示伽马函数,α表示f(yO)的形状参数,m表示f(yO)的尺度参数,M表示f(yO)的散布矩阵,满足tr(M)=p,tr(M)表示求M的迹,(yO)T为yO的转置,(mM)-1表示求mM的逆矩阵,|mM|表示求mM行列式的值,exp()表示以自然基数e为底的指数函数,π=3.14159…;
对xT进行多元高斯分布拟合,拟合得到xT的多元高斯概率密度函数,记为f(yT),然后以(β,n,N)来表示xT的颜色分布;其中,yT=xT-μT,μT表示xT的均值向量,μT,1表示{IT,i(x',y')}中的所有像素点的第1个分量的值的平均值,也即为xT,1中的所有元素的值的平均值,μT,2表示{IT,i(x',y')}中的所有像素点的第2个分量的值的平均值,也即为xT,2中的所有元素的值的平均值,μT,3表示{IT,i(x',y')}中的所有像素点的第3个分量的值的平均值,也即为xT,3中的所有元素的值的平均值,β表示f(yT)的形状参数,n表示f(yT)的尺度参数,N表示f(yT)的散布矩阵,满足tr(N)=q,tr(N)表示求N的迹,(yT)T为yT的转置,(nN)-1表示求nN的逆矩阵,|nN|表示求nN行列式的值;
步骤四:对{IL,i(x,y)}中落于用户选择的对象内的所有像素点进行颜色编辑操作、而对{IL,i(x,y)}中落于用户选择的对象外的所有像素点不进行颜色编辑操作,若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象内,则将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第1个分量的值记为将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第2个分量的值记为将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第3个分量的值记为 其中,IL,1(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第1个分量的值,IL,2(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第2个分量的值,IL,3(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第3个分量的值,
λ和η为形状控制参数,符号“|| ||”表示取矩阵的模;
步骤五:获取颜色编辑操作后的左视点图像,记为将中坐标位置为(x,y)的像素点的第i个分量的值记为若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象内,则令若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象外,则令其中,表示{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第i个分量的值;
步骤六:根据{dL(x,y)}的直方图分布,计算得到{dL(x,y)}的视差映射函数,记为g(b);然后获取深度编辑操作后的左视差图像,记为将中坐标位置为(x,y)的像素点的像素值记为 其中,b为正整数,1≤b≤B,B表示{dL(x,y)}中所包含的视差等级的总数目;
步骤七:根据和获取颜色和深度编辑操作后的右视点图像,记为将中坐标位置为(x,y)的像素点的第i个分量的值记为 然后将和构成颜色和深度编辑操作后的立体图像;其中,表示中坐标位置为的像素点的第i个分量的值。
所述的步骤六中的g()的计算过程为:
步骤A、计算{dL(x,y)}的直方图分布,记为{Pd[b]|1≤b≤B};其中,b为正整数,B表示{dL(x,y)}中所包含的视差等级的总数目,Pd[b]表示{dL(x,y)}中视差等级为b的像素点在{dL(x,y)}中出现的概率;
步骤B、对{Pd[b]|1≤b≤B}进行最小二乘法曲线拟合,将拟合得到的曲线记为f(b),f(b)=ζ5×b5+ζ4×b4+ζ3×b3+ζ2×b2+ζ1×b+ζ0;其中,ζ5、ζ4、ζ3、ζ2、ζ1、ζ0为拟合得到的加权参数;
步骤C、根据f(b)计算g(b),其中,b1为整数,0≤b1≤b,
f(b1)=ζ5×b1 5+ζ4×b1 4+ζ3×b1 3+ζ2×b1 2+ζ1×b1+ζ0。
与现有技术相比,本发明的优点在于:
本发明方法对待处理的立体图像的左视点图像中落于用户选择的对象内的三个分量的颜色信息和用户提供的参考图像的三个分量的颜色信息分别进行多元高斯分布拟合;然后根据拟合得到的两个颜色分布对落于用户选择的对象内的所有像素点进行颜色编辑操作,获取颜色编辑后的左视点图像;再根据待处理的立体图像的左视差图像的直方图分布得到视差映射函数,获取深度编辑操作后的左视差图像;最后根据颜色编辑后的左视点图像和深度编辑操作后的左视差图像,获取颜色和深度编辑后的右视点图像,这样使得获得的颜色和深度编辑后的立体图像既能满足用户对对象颜色传递的需要又能增强观看的视觉体验。
附图说明
图1为本发明方法的总体实现框图;
图2a为“Image1”的原始立体图像的“红/绿”图;
图2b为“Image1”经颜色和深度编辑后的“红/绿”图;
图3a为“Image2”的原始立体图像的“红/绿”图;
图3b为“Image2”经颜色和深度编辑后的“红/绿”图;
图4a为“Image3”的原始立体图像的“红/绿”图;
图4b为“Image3”经颜色和深度编辑后的“红/绿”图;
图5a为“Image4”的原始立体图像的“红/绿”图;
图5b为“Image4”经颜色和深度编辑后的“红/绿”图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种立体图像颜色和深度编辑方法,其总体实现框图如图1所示,其包括以下步骤:
步骤一:将待处理的宽度为W且高度为H的立体图像的左视点图像、右视点图像及左视差图像对应记为{IL,i(x,y)}、{IR,i(x,y)}及{dL(x,y)};将用户提供的宽度为W'且高度为H'的参考图像记为{IT,i(x',y')};其中,1≤x≤W,1≤y≤H,i=1,2,3分别表示RGB颜色空间的三个分量,RGB颜色空间的第1个分量为红分量、RGB颜色空间的第2个分量为绿分量、RGB颜色空间的第3个分量为蓝分量,IL,i(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第i个分量的值,IR,i(x,y)表示{IR,i(x,y)}中坐标位置为(x,y)的像素点的第i个分量的值,dL(x,y)表示{dL(x,y)}中坐标位置为(x,y)的像素点的像素值,W'可与W相同或不相同,H'可与H相同或不相同,1≤x'≤W',1≤y'≤H',IT,i(x',y')表示{IT,i(x',y')}中坐标位置为(x',y')的像素点的第i个分量的值。
步骤二:在{IL,i(x,y)}中用户通过编辑操作手工选择对象;然后将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的每个分量的值按序排列构成一个列向量,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第1个分量的值构成的列向量记为xO,1,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第2个分量的值构成的列向量记为xO,2,将{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第3个分量的值构成的列向量记为xO,3;再根据xO,1、xO,2和xO,3,得到{IL,i(x,y)}对应的值矩阵,记为xO,其中,xO,1、xO,2和xO,3的维数均为num×1,xO的维数为3num×1,num表示{IL,i(x,y)}中落于用户选择的对象内的像素点的总个数。
将{IT,i(x',y')}中的所有像素点的每个分量的值按序排列构成一个列向量,将{IT,i(x',y')}中的所有像素点的第1个分量的值按序排列构成的列向量记为xT,1,将{IT,i(x',y')}中的所有像素点的第2个分量的值按序排列构成的列向量记为xT,2,将{IT,i(x',y')}中的所有像素点的第3个分量的值按序排列构成的列向量记为xT,3;再根据xT,1、xT,2和xT,3,得到{IT,i(x',y')}对应的值矩阵,记为xT,其中,xT,1、xT,2和xT,3的维数均为num'×1,xT的维数为3num'×1,num'表示{IT,i(x',y')}中的像素点的总个数,num'=W'×H'。
步骤三:对xO进行多元高斯分布拟合,拟合得到xO的多元高斯概率密度函数,记为f(yO),然后以(α,m,M)来表示xO的颜色分布;其中,f()为函数表示形式,yO=xO-μO,μO表示xO的均值向量,μO,1表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第1个分量的值的平均值,也即为xO,1中的所有元素的值的平均值,μO,2表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第2个分量的值的平均值,也即为xO,2中的所有元素的值的平均值,μO,3表示{IL,i(x,y)}中落于用户选择的对象内的所有像素点的第3个分量的值的平均值,也即为xO,3中的所有元素的值的平均值,Γ()表示伽马函数,α表示f(yO)的形状参数,m表示f(yO)的尺度参数,M表示f(yO)的散布矩阵,满足tr(M)=p,tr(M)表示求M的迹,(yO)T为yO的转置,(mM)-1表示求mM的逆矩阵,|mM|表示求mM行列式的值,exp()表示以自然基数e为底的指数函数,π=3.14159…。
对xT进行多元高斯分布拟合,拟合得到xT的多元高斯概率密度函数,记为f(yT),然后以(β,n,N)来表示xT的颜色分布;其中,yT=xT-μT,μT表示xT的均值向量,μT,1表示{IT,i(x',y')}中的所有像素点的第1个分量的值的平均值,也即为xT,1中的所有元素的值的平均值,μT,2表示{IT,i(x',y')}中的所有像素点的第2个分量的值的平均值,也即为xT,2中的所有元素的值的平均值,μT,3表示{IT,i(x',y')}中的所有像素点的第3个分量的值的平均值,也即为xT,3中的所有元素的值的平均值,β表示f(yT)的形状参数,n表示f(yT)的尺度参数,N表示f(yT)的散布矩阵,满足tr(N)=q,tr(N)表示求N的迹,(yT)T为yT的转置,(nN)-1表示求nN的逆矩阵,|nN|表示求nN行列式的值。
步骤四:对{IL,i(x,y)}中落于用户选择的对象内的所有像素点进行颜色编辑操作、而对{IL,i(x,y)}中落于用户选择的对象外的所有像素点不进行颜色编辑操作,若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象内,则将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第1个分量的值记为将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第2个分量的值记为将{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第3个分量的值记为 其中,IL,1(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第1个分量的值,IL,2(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第2个分量的值,IL,3(x,y)表示{IL,i(x,y)}中坐标位置为(x,y)的像素点的第3个分量的值,
λ和η为形状控制参数,在本实施例中取λ=0.25、η=3,符号“|| ||”表示取矩阵的模。
步骤五:获取颜色编辑操作后的左视点图像,记为将中坐标位置为(x,y)的像素点的第i个分量的值记为若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象内,则令若{IL,i(x,y)}中坐标位置为(x,y)的像素点落于用户选择的对象外,则令其中,表示{IL,i(x,y)}中落于用户选择的对象内的坐标位置为(x,y)的像素点经过颜色编辑操作后的第i个分量的值。
步骤六:根据{dL(x,y)}的直方图分布,计算得到{dL(x,y)}的视差映射函数,记为g(b);然后获取深度编辑操作后的左视差图像,记为将中坐标位置为(x,y)的像素点的像素值记为 其中,b为正整数,1≤b≤B,B表示{dL(x,y)}中所包含的视差等级的总数目。
在此具体实施例中,步骤六中的g()的计算过程为:
步骤A、计算{dL(x,y)}的直方图分布,记为{Pd[b]|1≤b≤B};其中,b为正整数,B表示{dL(x,y)}中所包含的视差等级的总数目,Pd[b]表示{dL(x,y)}中视差等级为b的像素点在{dL(x,y)}中出现的概率。
步骤B、对{Pd[b]|1≤b≤B}进行最小二乘法曲线拟合,将拟合得到的曲线记为f(b),f(b)=ζ5×b5+ζ4×b4+ζ3×b3+ζ2×b2+ζ1×b+ζ0;其中,ζ5、ζ4、ζ3、ζ2、ζ1、ζ0为拟合得到的加权参数。
步骤C、根据f(b)计算g(b),其中,b1为整数,0≤b1≤b,f(b1)=ζ5×b1 5+ζ4×b1 4+ζ3×b1 3+ζ2×b1 2+ζ1×b1+ζ0。
步骤七:根据和获取颜色和深度编辑操作后的右视点图像,记为将中坐标位置为(x,y)的像素点的第i个分量的值记为 然后将和构成颜色和深度编辑操作后的立体图像;其中,表示中坐标位置为的像素点的第i个分量的值。
为了进一步说明本发明方法的可行性和有效性,对本发明方法进行试验。
以下就采用本发明方法对Image1、Image2、Image3和Image4四幅立体图像进行颜色和深度编辑实验。图2a给出了“Image1”的原始立体图像的“红/绿”图,图2b给出了“Image1”经颜色和深度编辑后的“红/绿”图;图3a给出了“Image2”的原始立体图像的“红/绿”图,图3b给出了“Image2”经颜色和深度编辑后的“红/绿”图;图4a给出了“Image3”的原始立体图像的“红/绿”图,图4b给出了“Image3”经颜色和深度编辑后的“红/绿”图;图5a给出了“Image4”的原始立体图像的“红/绿”图,图5b给出了“Image4”经颜色和深度编辑后的“红/绿”图。从图2a至图5b中可以看出,采用本发明方法得到的颜色和深度编辑后的立体图像既满足用户对对象颜色传递的需要又增强了观看的视觉体验。