资源简介
主要实现了彩色图像的颜色迁移技术,这里边主要是基于我网上看到的一部分内容写的。
代码片段和文件信息
%%%颜色迁移--color transfer
function swgc=swatchcolortransfer(swgswchwinsizejit)
%swg--灰度图像矩阵
%swc--彩色图像矩阵(三页面24位真彩色图像)
%hwin--滤波窗口的大小
%sizejit--随机采样点数,一般根据彩色图像的大小取50、100、200等等
swg=double(swg);
swc=double(swc);
sizewin=2*hwin+1;
%彩色图像的颜色空间转换(from RGB space to lab)
labsw=rgblab(swc0);
%求均值、方差
ms=zeros(32);
ms(11)=mean2(labsw(::1));
ms(12)=std2(labsw(::1));
ms(21)=mean2(labsw(::2));
ms(22)=std2(labsw(::2));
ms(31)=mean2(labsw(::3));
ms(32)=std2(labsw(::3));
%数据校正
uc=mean2(labsw(::1));
dc=std2(labsw(::1));
ug=mean2(swg(::1));
dg=std2(swg(::1));
if dg~=0
labsw(::1)=(labsw(::1)-uc).*(dg/dc)+ug;
end
%求颜色转移时的匹配矢量
ucv0=colfilt(labsw(::1)[sizewinsizewin]‘sliding‘@mean);
dcv0=colfilt(labsw(::1)[sizewinsizewin]‘sliding‘@std);
ugv0=colfilt(swg(::1)[sizewinsizewin]‘sliding‘@mean);
dgv0=colfilt(swg(::1)[sizewinsizewin]‘sliding‘@std);
[mc nc]=size(labsw(::1));
[mg ng]=size(swg(::1));
ucv=ucv0(1+hwin:mc-hwin1+
- 上一篇:带跳跃的GARCH模型MATLAB程序
- 下一篇:landmarc定位算法
评论
共有 条评论