版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 Welsh 算法的灰度图像彩色化的研究杨亚南 王磊 孙田雨(燕山大学理学院信息与计算科学专业 河北 秦皇岛)摘 要 Welsh 算法在将灰度图像彩色化的过程中取得了较好的效果, 是却存在着像素匹配过程中循环过多、 速度过慢、 彩色化后的图像存在噪声的问题。分析 Welsh 算法的不足之处, 采取在彩色图像中间隔取点的办法, 减少循环次数。同时针对彩色化后的图像中存在噪声的问题, 使用指导性滤波对迁移后的图像进行优化, 去掉噪声的干扰。通过实验表明, 经过指导性滤波处理的图像可以产生出更好的效果, 使图像的效果更清晰和自然。关键词 Welsh 算法 彩色化 间隔取点 指导性滤波0 引 言灰
2、度图像的彩色化是将一幅彩色图像的颜色特征传递给一幅灰度图像,从而使灰度目标图像具有与源彩色图像相似的颜色。uderman 等1在1998年提出了 颜色空间。其中表示非彩色的亮度通道, 表示彩色的黄蓝( yellow- blue oppo-nent)通道,表示红绿( red- green opponent)通道。与其他颜色体系不同,空间更适合人类视觉感知系统。对自然场景,通道间的相关性会降到最小,解决了传统 GB 颜色空间中(红)、G(绿)、B(蓝)三个颜色通道相关性太强2,3,在不同通道进行运算时容易出现通道交叉的问题。颜色空间更适合对颜色信息进行迁移。在2001年,einhard4在颜色空间
3、的基础上,提出了彩色和彩色图像之间的迁移算法,取得了较好的效果, 但是该算法不适合灰度图像之间的迁移。einhard的算法在灰度图像彩色化的过程中会使结果图颜色失真, 造成不真实的感觉。在2002年的时候,Welsh5 等人提出了将灰度图像彩色化的算法,取得了较好的效果。1 Welsh 算法目前在灰度图像彩色化的过程中主要采用的是 Welsh 算法, Welsh 算法的具体过程如下:(a) 将彩色参考图像和目标灰度图像都变换到抗相关性的空间;(b) 对彩色参考图像进行亮度的重映射。因为为了将彩色参考图像的色彩传输给目标图像, 目标图像的每个像素必须在彩色参考图像中找一个像素来匹配,考虑到彩色参
4、考图像和目标图像亮度的整体差异,必须对彩色参考图像进行亮度的重映射,使它的直方图与目标灰度图像的亮度直方图相匹配;(c) 计算彩色参考图像的每一个点的亮度值和 5 × 5 领域内的方差值;(d) 对于灰度图像的每个像素, 计算该像素 P Ti 的亮度值L 和 5 ×5 领域内的方差值 D, 并与彩色参考图像的特征点相比较, 找到与 P T 的 0 5 × L +0 5 × D 最相近的一点(假设为 P Sj ), 则 P Sj 就是与灰度图像的当前点 PTi 匹配的点;(e) 将彩色参考图像 P Sj 的 值传输给目标灰度图像的P Ti 点,同时保留 P
5、 Ti 点 通道的亮度值;(f) 逐点扫描目标灰度图像, 对每个像素都采用(d)、 (e)步骤,找到与其匹配的彩色图像中的点, 并传输颜色。2 对 Welsh 算法的改进 由于 Welsh 算法的主要问题就是在彩色图像中搜索与灰度图像最匹配的 空间的像素值。例如彩色图像的大小是 100×100, 灰度图像的大小是 100 ×100, 那么找到与这张灰度图像最匹配的 空间的值需要循环 10 8 。目前的改进主要是提高 Welsh 算法的搜索速度, 主要是以下两个方面。第一:在文献 8 中, 将图像像素邻域相关特性引入到匹配像素的搜索过程中。搜索匹配像素时, 先在当前像素的邻域
6、范围内进行搜索, 只在邻域搜索失效时才进行全图范围的搜索, 由于像素邻域相关特性,大部分像素可以在邻域搜索中找到匹配像素, 只有极少像素需要进行全图搜索, 从而较大地降低了搜索代价。但是由于图像是连续的, 对于一张图像的边缘处, 这样的方法并不合适。第二:在文献 9中, 在彩色图像中随机抽取 200 个像素点, 对于灰度图像中的每一个像素点都在这 200 个随机抽取的像素点中寻找最匹配的像素值。这样虽然可以大幅度提高搜索的速度, 但是由于是随机取点, 造成了彩色图像的像素值不一定与灰度图像最适合, 造成了颜色迁移的失真。同时对于一副很大的图片, 只抽取 200 个点并不能保证涵盖所有的彩色像素
7、的值。本文是在彩色图像的每行每列中, 每隔十个像素点抽取一个, 这样能最大限度的保证抽取出来的彩色图像的点能够包含整个图像, 最大限度地减少了迁移过程中的颜色的失真, 特别是对边界处有很好的效果, 同时减少了匹配过程中的循环次数。例如上面提到的彩色图像的大小是 100 ×100, 灰度图像的大小是 100 ×100, 通过相隔 10 个像素点取值的搜索策略, 完成整个循环匹配只需要 10 6 , 使得运行速度比 Welsh 的循环次数减少了100 倍。程序代码:gray2rgb.m文件% RGB转换为Lab空间并进行彩色迁移clc;clear;A=imread('2
8、07.jpg'); %取样图m n l=size(A);L,a,b=RGB2Lab(A); %空间转换AA(:,:,1)=L;AA(:,:,2)=a;AA(:,:,3)=b;ls=0;k=0;%计数器kk=0;%控制每隔10取值for i=3:m-2; for j=3:n-2; if(mod(kk,10)=0) k=k+1; ls(1,k)=L(i,j); %亮度 sizeA=numel(AA(i-2:i+2,j-2:j+2,:); ls(2,k)=std(reshape(AA(i-2:i+2,j-2:j+2,:),1,sizeA);%方差 ls(3,k)=i; ls(4,k)=j;
9、end kk=kk+1; endenddisplay('彩色图取样完毕');size(ls)B=imread('207_副本.jpg');figure;imshow(B);title('原图');m n l=size(B);L,a,b=RGB2Lab(B);BB(:,:,1)=L;BB(:,:,2)=a;BB(:,:,3)=b;k=1;display('开始计算灰色图像');for i=1:m; for j=1:n; ls2(1,k)=L(i,j); ibegin=i-2; iend=i+2; jbegin=j-2; jend=j
10、+2; if(i<=2) ibegin=1; else ibegin=i-2; end if(i>=m-2) iend=m; else iend=m-2; end if(j<=2) jbegin=1; else jbegin=j-2; end if(j>=n-2) jend=n; else jend=n-2; end sizeB=numel(BB(ibegin:iend,jbegin:jend,:); ls2(2,k)=std(reshape(BB(ibegin:iend,jbegin:jend,:),1,sizeB);%计算方差 ls2(3,k)=i; ls2(4,k
11、)=j; k=k+1; endend display('开始对比');sumLs=(ls(1,:)*0.5)+ls(2,:)*1; %计算公式 亮度+方差sumLs2=(ls2(1,:)*0.5)+ls2(2,:)*1; %灰色图的所有像素点for i=1:length(sumLs2) tmp=abs(sumLs-sumLs2(i); %求绝对值 index=find(tmp=min(tmp); %取最接近的索引 % BB(ls2(3,i),ls2(4,i),1)= AA(ls(3,index),ls(4,index),1); % 亮度不变 BB(ls2(3,i),ls2(4,
12、i),2)= AA(ls(3,index),ls(4,index),2); % a赋值 BB(ls2(3,i),ls2(4,i),3)= AA(ls(3,index),ls(4,index),3); % b赋值endr,g,b=Lab2RGB(BB);figure;clear B;B(:,:,1)=r;B(:,:,2)=g;B(:,:,3)=b;imshow(B);title('上色图');imwrite(B,'aa.jpg'); figure; imshow(A);title('彩色图');3 指导性滤波使用 Welsh 算法进行灰度图像彩色化
13、之后, 图像上存在着噪声。文献 6 中使用了双边滤波(Bilateral filter)对图像进行了优化。双边滤波是一种非线性的滤波方法, 是结合图像的空间邻近度和像素值相似度的一种折衷处理, 达到保边去噪的目的, 具有简单、 非迭代的特点。但是双边滤波器对于高频细节的处理效果并不明显, 对于彩色图像里的高频噪声, 双边滤波器不能够干净的滤掉, 只对于低频信息有较好的滤波效果。本文采用的是指导性滤波(Guiding filter) 7 对经过 Welsh 算法处理后的迁移结果图像进行处理。同时为了提高指导性滤波的处理速度, 使用盒子滤波。与双边滤波相比, 指导性滤波可以更好地保留图像中的梯度,
14、 对图像的边缘有着更好的效果。而且指导性滤波的时间复杂度是 O(N), 由窗口半径 r 决定。指导性滤波的定义由式(1)、 式(2)和式(4)表示。公式(1)其中, I i 是输入图像I的像素值, k 和 2k 分别为输入图像像素的平均值和方差, 为正规划参数, 本文取值为 0 01, | w | 为图像在 w k 区域内像素的数量。公式(2)其中,pk为图像 p 在 w k 区域内的像素平均值。公式(3)其中, q i 是经过指导性滤波处理后的最终结果图, 在盒子滤波中内核半径 r 取值为 2。经过了指导性滤波的处理, 使处理后的图像更加平滑, 除去了噪声的干扰。程序代码:guidedfil
15、ter.m% guide滤波函数function q = guidedfilter(I, p, r, eps) %包滤波器,主要功能是在给定的滑动窗口大小下,对每个窗口内的像素值进行相加求和hei, wid = size(I); %读取输入图像的尺寸 其中 hei为高 wid为宽N = boxfilter(ones(hei, wid), r); % the size of each local patch; N=(2r+1)2 except for boundary pixels. ones产生一个hei*wid的值全为1的矩阵 mean_I = boxfilter(I, r) ./ N;me
16、an_p = boxfilter(p, r) ./ N;mean_Ip = boxfilter(I.*p, r) ./ N;cov_Ip = mean_Ip - mean_I .* mean_p; % this is the covariance of (I, p) in each local patch.公式5中的分子 mean_II = boxfilter(I.*I, r) ./ N;var_I = mean_II - mean_I .* mean_I; %公式5中的分母第一项 a = cov_Ip ./ (var_I + eps); % Eqn. (5) in the paper;b =
17、 mean_p - a .* mean_I; % Eqn. (6) in the paper; mean_a = boxfilter(a, r) ./ N;mean_b = boxfilter(b, r) ./ N; q = mean_a .* I + mean_b; % Eqn. (8) in the paper;endboxfilter.m文件% 盒子滤波函数function imDst = boxfilter(imSrc, r)hei, wid = size(imSrc); %读取尺寸imDst = zeros(size(imSrc); %预留空间imCum = cumsum(imSrc
18、, 1);%计算这个数组各行的累加值 把第一行加到第二行 然后把第二行加到第三行 依次累加 后面的1表示按行累加 2表示按列累加imDst(1:r+1, :) = imCum(1+r:2*r+1, :); %把imCum的第1+r到2*r+1行赋值给imDst的1:r+1行 对于全为1的源输入图像而言 这里的值就是1+r2*r+1imDst(r+2:hei-r, :) = imCum(2*r+2:hei, :) - imCum(1:hei-2*r-1, :); %对于全为1的输入图像而言,这里的值就是全为2*r+1imDst(hei-r+1:hei, :) = repmat(imCum(hei
19、, :), r, 1) - imCum(hei-2*r:hei-r-1, :); %将矩阵imCum(hei, :)变成r, 1维 %repmat函数将imCum的第hei行这组数据变成 r行 %1列的数组,其中数组的每个元素都由hei行组成。比如说这里的结果就是把一行imCum(hei, :)变成r行个imCum(hei, :)。%这里利用最后一行的值减去前面的值赋给imDstimCum = cumsum(imDst, 2); %这里在将imDst的矩阵按列累加% 继续按列赋值imDst(:, 1:r+1) = imCum(:, 1+r:2*r+1);imDst(:, r+2:wid-r)
20、= imCum(:, 2*r+2:wid) - imCum(:, 1:wid-2*r-1);imDst(:, wid-r+1:wid) = repmat(imCum(:, wid), 1, r) - imCum(:, wid-2*r:wid-r-1); %end 5 实验结果与分析本文是在操作系统为 Windows 8, CPU 为 Intel 酷睿 i7, 系统内存为 8GB 的普通计算机上实现的。使用的软件是Matlab 2012a。选取的图像来源于互联网的图片。图 1 是 258 ×168 的 BMP 图像, 图 2 是258 ×168 的 BMP 图像, 图 3 是
21、使用 Welsh 改进后的算法结果图, 图 4 是使用指导性滤波处理后的结果图。图 5 是 318 ×316的 jpg 图像, 图 6 是 620 ×376 的 jpg 图像, 图 7 是使用 Welsh 改进后的算法结果图, 图 8 是使用指导性滤波处理后的结果图。各图由于印刷的原因只能黑白显示。 原始图像 图1 灰色图像 图2上色后的图像 72.3 图3 Welsh滤波图像 52.65 图4 welsh滤波增强图像 76.8 图5 采用RGB空间的色彩迁移 图 6 原始图像 图6 灰色图像 图7上色后的图像 114图8 Welsh滤波图像 79 图9 welsh滤波增强
22、图像 121 图10 原始图像 做对比用5 1 主观评价标准在文献 10中, 灰度图像彩色化的效果主要由颜色对比度、 舒服感觉和自然感三个方面进行评价。对比图 3 和图 4, 可以发现图 3 中天空和白云的部分存在着噪声, 图 4 中经过指导性滤波的处理之后, 这两部分变得更加的柔和和自然, 去掉了图3 中的噪声干扰。图 7 和图 8 主要是在背景方面上的差别, 图 7在背景中存在着细节粗糙的缺点, 图 8 经过指导性滤波的处理,背景效果更加的柔和。5 2 客观评价标准图像的客观评价方法是用数学的方法来衡量一幅图像的质量, 而清晰度是最重要的一种评价方式 10 。清晰度反映了图像质量的改进,
23、同时还反映出图像中微小细节反差和纹理变换特征。图像清晰度的值越大, 说明图像的效果越好。在彩色图像中, 清晰度的计算公式为:Px (i, j) =r2x (i, j) + g2x (i, j) + b2x (i, j槡) (5)Py (i, j) =r2y (i, j) + g2y (i, j) + b2y (i, j槡) (6)其中,r x (i, j), g x (i, j), b x (i, j);r y (i, j), g y (i, j), b y (i, j)分别为 , G, B 三个页面沿 x 和 y 方向的差分。程序代码:Difference.m文件% 计算图像清晰度function d=Difference(X)R=X(:,:,1);G=X(:,:,2);B=X(:,:,3);dx=sqrt(sum(sum(diff(R).2+diff(G).2+diff(B).2);dy=sqrt(sum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年粤教新版九年级化学上册阶段测试试卷
- 2025年人教版七年级科学上册月考试卷含答案
- 2024年项目经验共享协议3篇
- 2024年石家庄铁路职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 2025年人教版三年级英语上册月考试卷
- 2025年上教版选择性必修2物理下册阶段测试试卷含答案
- 2025年西师新版高三化学上册阶段测试试卷含答案
- 2025年人教版(2024)七年级地理上册月考试卷含答案
- 2025年浙教新版八年级数学下册月考试卷
- 2025年度购物中心配套餐饮租赁管理规范合同3篇
- 2024年南通职业大学单招职业技能测试题库有答案解析
- 2024股权融资计划
- 西式面点师试题与答案
- 钢结构连廊专项吊装方案(通过专家论证)
- 50MWp渔光互补光伏电站项目锤桩施工方案
- 2025免疫规划工作计划
- 食品安全知识培训
- 高三冲刺毕业家长会课件2024-2025学年
- 2024年各地中考试卷【文言文阅读题】汇集练(一)附答案解析
- 小收纳 大世界-整+理与收纳智慧树知到期末考试答案章节答案2024年黑龙江幼儿师范高等专科学校
- 国际疾病分类ICD11编码库
评论
0/150
提交评论