双边滤波(bilateral filter)彩色图 matlab实现代码
来源:互联网 发布:淘宝网天猫全棉女卫衣 编辑:程序博客网 时间:2024/05/26 19:19
接上篇文章,这次双边滤波处理的是彩色图。
下面是函数代码:
function J=btfColorImage(I,G,sigma_d,sigma_r,filterRadius)x=-filterRadius:filterRadius;y=-filterRadius:filterRadius;[xx,yy]=meshgrid(x,y);spatialKernel=exp(- (xx.^2+yy.^2)/(2*sigma_d^2));[rows,cols,channels]=size(I);rc=zeros(size(I(:,:,1)));gc=zeros(size(rc));bc=zeros(size(gc));if size(G,3)==1 temp=G; G(:,:,1)=temp; G(:,:,2)=temp; G(:,:,3)=temp;endparfor y=filterRadius+1:rows-filterRadius for x=filterRadius+1:cols-filterRadius roi= I(y-filterRadius:y+filterRadius,x-filterRadius:x+filterRadius,:); roidif=zeros(size(roi)); roidif(:,:,1)=roi(:,:,1)-G(y,x,1); roidif(:,:,2)=roi(:,:,2)-G(y,x,2); roidif(:,:,3)=roi(:,:,3)-G(y,x,3); roidif=roidif.^2; roidif=roidif(:,:,1)+roidif(:,:,2)+roidif(:,:,3); tonalKernel =exp(- roidif/(2*sigma_r^2)); W=(tonalKernel.*spatialKernel); k=sum(W(:)); RC=W.*roi(:,:,1); GC=W.*roi(:,:,2); BC=W.*roi(:,:,3); rc(y,x)=sum(RC(:))/k; gc(y,x)=sum(GC(:))/k; bc(y,x)=sum(BC(:))/k; endendrc=rc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius);gc=gc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius);bc=bc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius);J=cat(3,rc,gc,bc);end下面是运行代码:
clear allg = double(imread('woman.png'))/255.0;G=g;%guidance imagesigma_d=2;sigma_r=0.3;filterSize=double(uint8(3*sigma_d)*2+1);filterRadius=ceil((filterSize-1)/2);I=padarray(g,[filterRadius,filterRadius],'replicate');G=padarray(G,[filterRadius,filterRadius],'replicate');J=btfColorImage(I,G,sigma_d,sigma_r,filterRadius);figure;imshow([g,J]);title('input,output');下面是效果图:
0 0
- 双边滤波(bilateral filter)彩色图 matlab实现代码
- 双边滤波(bilateral filter)灰度图 matlab实现代码
- 双边滤波(bilateral filter)快速算法 matlab实现代码
- 双边滤波Matlab实现<The Bilateral Filter>
- 双边滤波Matlab实现<The Bilateral Filter>
- opencv bilateral filter vs matlab bilateral filter 双边滤波
- 双边滤波(Bilateral filter)
- 双边滤波(Bilateral filter)
- 双边滤波(Bilateral Filter)详解
- 双边滤波matlab代码
- Bilateral Filtering(双边滤波)
- Bilateral Filtering(双边滤波)
- Bilateral Filters(双边滤波算法)原理及实现
- 双边滤波(bilateral filtering)
- Joint Bilateral Filtering 双边滤波
- 双边滤波器(Bilateral Filter)
- 双边滤波JAVA代码实现
- 双边滤波以及代码实现
- SQL行转列
- Lookup Transformation(2) 优化
- 深入探索KVC
- 前端优化总结--编码习惯(一)
- 如何比拼好货做的更好
- 双边滤波(bilateral filter)彩色图 matlab实现代码
- @Column
- java23.IO操作------使用Apache IO库操作IO与文件
- M0、M3、M4简单对比
- WIndows下MySQL Zip版本安装
- ORACLE水位线讲解
- nagios介绍
- 开源HYBUnicodeReadable日志显示Unicode中文
- Windows7安装Maven3.3.9