После этого урока по обработке изображений, я думаю, что целью урока является достижение традиционного порога
сегментация, чтобы отделить фон и передний план изображения,
путем подгонки полиномиальной кривой к распределению интенсивности изображения и
найти точку перегиба на кривой для использования в качестве порога.
Вот код:
img = imread('rice.tif');
degree = 6;
%fitting intensity distribution
[frequency, intensity] = imhist(img);
[polynome, ~, mu] = polyfit(intensity, frequency, degree);
eval_fit = polyval(polynome, intensity, [], mu);
Однако в следующем блоке кода:
%locate inflection point
[values, indices] = sort(abs(diff(eval_fit)));
[m, i] = min(diff(values))
thresh = indices(i)/255;
img_seg = imbinarize(img, thresh);
В частности, первые две строки, я не понимаю, зачем использовать abs
, sort
, если вы собираетесь получить производную во второй раз?
Во-вторых, я искал в Google и не нашел аналогичного подхода, поэтому я хочу спросить, хорош ли этот подход? Сталкивались ли вы с этим?