Filtering data from an image for surface roughness

3 visualizaciones (últimos 30 días)
Jonathan Russell
Jonathan Russell el 10 de Jul. de 2017
Editada: Image Analyst el 10 de Jul. de 2017
I'm working on code that takes in an image of the edge of a material, traces the edge, and then (hopefully) applies a Gaussian high pass filter to the data. I have the data from the trace, but I'm just not sure how to apply a filter to it. Here's my current code
function[]= MMtrace2(image)
%creates a trace of an image based on the trace from Photoshop
clc;
mm = imread(image);
BW = im2bw(mm);
BW2 = (BW == 0);
imshow(BW2);
[yy , xx]=find(BW2);
uy = accumarray( xx, yy, [], @mean );
ux = 1:max(xx);
figure;plot(ux,uy,'r','LineWidth',1.5);
end
The resulting image is attached. I'm just trying to get rid of the waviness of the profile (the longer curves), which is why I need the high pass filter.
Thanks
  1 comentario
Image Analyst
Image Analyst el 10 de Jul. de 2017
Editada: Image Analyst el 10 de Jul. de 2017
I fixed it for you this time, but in the future, to learn how to format your code, see this link: http://www.mathworks.com/matlabcentral/answers/13205#answer_18099
You also forgot to attach the image. Please use the green and brown frame icon so we can see what you're talking about.
To use a high pass filter, you can use imfilter() or conv2() or imgradient(). To measure texture or roughness, you can use stdfilt() or entropyfilt().

Iniciar sesión para comentar.

Respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by