How to apply custom filter to a grayscale image?
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Atalay Asa
el 7 de Jun. de 2020
Comentada: Atalay Asa
el 9 de Jun. de 2020
I need to have grayscale image and develop a program that applies the filters given below to that grayscale image. I implemented following code but not sure if it is ok or not?
grayImage = imread("cameramanImage.tiff");
h = [ 2 -1 -1
-1 2 -1
-1 -1 2 ];
im_outFirst = filter2(h, grayImage);
0 comentarios
Respuesta aceptada
Image Analyst
el 7 de Jun. de 2020
I'd do this, using imfilter():
grayImage = imread("cameraman.tif");
h = [ 2 -1 -1
-1 2 -1
-1 -1 2 ];
im_outFirst = imfilter(grayImage, h);
I'm not sure what filter2 does or how it differs from imfilter().
0 comentarios
Más respuestas (1)
Ameer Hamza
el 7 de Jun. de 2020
Editada: Ameer Hamza
el 8 de Jun. de 2020
For images, use conv2(): https://www.mathworks.com/help/releases/R2020a/matlab/ref/conv2.html. filter2 is similar to conv2 but applies a rotated filter. Also, I suggest using image as first input and filter as second
im_outFirst = conv2(grayImage, h);
In the general case, it does not matter, but if you specify 'same' or 'valid' option, then it makes a difference.
5 comentarios
Ameer Hamza
el 8 de Jun. de 2020
Something like this
im_gray = rgb2gray(im2double(imread('pears.png')));
h = [ 2 -1 -1
-1 2 -1
-1 -1 2];
im_filt = zeros(size(im_gray)-2);
for row=2:size(im_gray,1)-1
for col=2:size(im_gray,2)-1
im_filt(row-1, col-1) = sum(im_gray(row-1:row+1, col-1:col+1).*h, 'all');
end
end
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!