EDA365电子论坛网

标题: 基于双边滤波的图像处理,为什么会输出两个黑框?以下代码 [打印本页]

作者: Touuqu    时间: 2019-8-29 17:49
标题: 基于双边滤波的图像处理,为什么会输出两个黑框?以下代码
基于双边滤波的图像处理,为什么会输出两个黑框?以下代码

clear all;
1 {) T$ T6 r7 w/ _# p4 Lclose all;
3 _6 B* J2 w8 n1 yclc;

img=imread('t_2.jpg');
8 e& ^  }) Y# yimg=mat2gray(img);
" {6 x* b: S, s9 Q/ e7 y8 @7 E" d[m n]=size(img);) t( v* v5 R' D5 m2 I6 W1 x
%imshow(img);

r=10; %模板半径' Z. ^" q$ @) ?+ z! F
imgn=zeros(m+2*r+1,n+2*r+1);
  |# _# B* a& C: r3 e) Z- Timg=imgn(r+1:m+r,r+1:n+r);
4 E9 @( |0 D1 T6 d% Ximgn(1:r,r+1:n+r)=img(1:r,1:n); %扩展上边界+ I! ~! E9 Z* u* m: C
imgn(1:m+r,n+r+1:n+2*r+1)=imgn(1:m+r,n:n+r); %扩展右边界
9 L. m2 l6 y( L4 ~4 k8 }imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=imgn(m:m+r,r+1:n+2*r+1); %扩展下边界9 K/ s( ?  Q& m
imgn(1:m+2*r+1,1:r)=imgn(1:m+2*r+1,r+1:2*r); %扩展左边界

sigma_d=2;( ]  F* ]' w. d/ q
sigma_r=0.1;- Q" i$ Z$ ^, p: c: ?5 I5 a" a9 m$ f
[x,y] = meshgrid(-r:r,-r:r);
& o+ C! \$ ^1 k6 E$ P0 qw1=exp(-(x.^2+y.^2)/(2*sigma_d^2)); %以距离作为自变量高斯滤波器

h=waitbar(0,'wait...');# _" q7 J2 Q2 e
for i=r+1:m+r
, T; p1 L7 s. b# \7 |% `1 nfor j=r+1:n+r4 d( W  d7 l8 \

9 S/ W6 o, l$ Kw2=exp(-(imgn(i-r:i+r,j-r:j+r)-imgn(i,j)).^2/(2*sigma_r^2)); %以周围和当前像素灰度差值作为自变量的高斯滤波器
. O1 Q6 F5 L! p. X, yw=w1.*w2;

    s=imgn(i-r:i+r,j-r:j+r).*w;    imgn(i,j)=sum(sum(s))/sum(sum(w));endwaitbar(i/m);

end! }* v1 l/ z: U! B8 ^3 T2 h
close(h)

figure;
' g, d( K; A7 N: \imshow(mat2gray(imgn(r+1:m+r,r+1:n+r)));


, y" g$ Q8 I1 {# T1 |

- S# s) r$ |" y


# E5 C8 r( c4 H
作者: relchhiclty    时间: 2019-8-29 18:49
找相关的资料看看




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2