Asked by Febin Benjamin
on 23 Jul 2013

This is my code..... The main body accepts images and filter matrix and passes this as inputs to a function called MyFilter.....

m = input('Enter number of rows: '); n = input('Enter number of columns: ');

for i = 1:m for j = 1:n str = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': ']; A(i,j) = input(str); end end

fontSize = 20;

for k = 1:25 tifFilename = sprintf('%d.tif', k); if ~exist(tifFilename, 'file') fprintf('%s not found.\n', tifFilename); continue; end rgbImage = imread(tifFilename); grayImage = rgb2gray(rgbImage ); BW = Myfilter(grayImage,A); figure,imshow(rgbImage); title('Color Image', 'FontSize', fontSize); figure,imshow(BW); title('Binary Edge Image', 'FontSize', fontSize); end

And this is the function MyFilter which I am calling......

i = imread(grayImage); filter = A;

[x y] = size(i); g = double(i); k= double(i); h = zeros(256,256); for xi = 2 : 255 for yi = 2 : 255 i(xi,yi)=((g(xi,yi)*filter(2,2) + g(xi,yi-1)*filter(2,1) + g(xi+1,yi-1)*filter(3,1) + g(xi+1,yi)* filter(3,2) + g(xi+1,yi+1)*filter(3,3)+ g(xi-1,yi+1)*filter(1,3)+g(xi-1,yi)*filter(1,2)+ g(xi-1,yi-1)*filter(1,1)+g(xi+1,yi)*filter(3,2)))/2; %h(xi,yi) end end

How can i get the images back from the called function after they are processed inside the function?

*No products are associated with this question.*

Answer by Image Analyst
on 23 Jul 2013

Accepted answer

Have the first line be

function i = MyFilter(A)

I advise you to use other names for the variables you call "i" and "filter" since they have special built-in meanings for MATLAB and you shouldn't overwrite them with your variables.

Answer by Image Analyst
on 23 Jul 2013

Have the first line be

function i = MyFilter(A)

I advise you to use other names for the variables you call "i" and "filter" since they have special built-in meanings for MATLAB and you shouldn't overwrite them with your variables.

Opportunities for recent engineering grads.

## 0 Comments