How to apply custom filter to a grayscale image?
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Atalay Asa
am 7 Jun. 2020
Kommentiert: Atalay Asa
am 9 Jun. 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 Kommentare
Akzeptierte Antwort
Image Analyst
am 7 Jun. 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 Kommentare
Weitere Antworten (1)
Ameer Hamza
am 7 Jun. 2020
Bearbeitet: Ameer Hamza
am 8 Jun. 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 Kommentare
Ameer Hamza
am 8 Jun. 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
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!