getting error as " Undefined function 'exp' for input arguments of type 'uint8'." can someone help me resolve this

clc;
clear all;
close all;
I = imread('pluginfile_page-0001.jpg');
I = rgb2gray(I);
figure(1)
imshow(I);
I = imresize(I,[256 256]);
sigma = 1;
sig_s=1;
sig_r=1;
halfwid = sigma * 3;
halfwid = 1;
[xx, yy] = meshgrid(-halfwid:halfwid, -halfwid:halfwid);
Gg=1/16*[1 2 1;2 4 2; 1 2 1];
%Gg = exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));
[M,N]=size(I);
modifyI=uint8((zeros(size(I)+2)));
%COPY THE ORIGINAL IMAGE MATRIX TO THE PADDED MATRIX
for x=1:size(I,1)
for y=1:size(I,2)
modifyI(x+1,y+1)=I(x,y);
end
end
figure(2);
imshow(modifyI);
%LET THE WINDOW BE AN ARRAY
%STORE THE 3-by-3 NEIGHBOUR VALUES IN THE ARRAY
%SORT AND FIND THE MIDDLE ELEMENT
Gf_num1=0;
Gf_den1=0;
Igy=uint8(conv2(modifyI,Gg,'same'));
figure(4);
imshow(Igy);
for i= 2:size(modifyI,1)-1
for j=2:size(modifyI,2)-1
for x=-1:1
for y=-1:1
%window(inc)=modifyI(i+x-1,j+y-1)
Gr = exp(-(abs(Igy(i+x,j+y)-modifyI(i,j)))^2/2*sig_r^2);
%Gr = exp(-((abs((Igy(i+x,j+y)-modifyI(i,j)))^2)/2*sig_r^2));
Gs=exp(-(((i+x)-i)^2+((j+y)-j)^2)/2*sig_s^2);
Gf_num = Gs*Gr*Igy(i+x,j+y);
Gf_num1=Gf_num1+Gf_num;
Gf_den=Gs*Gr;
Gf_den1 = Gf_den+Gf_den1;
end
end
Gfg(i-1,j-1) = Gf_num1 / Gf_den1;
end
end
%Gfg1 =im2uint8(Gfg);
% Gfg=uint8(Gfg);
figure(3);
imshow(Gfg);

 Accepted Answer

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!