Следуя этот учебник по обработке изображений, я думаю, что цель преподавателя — достичь традиционного порога сегментация для разделения фона и переднего плана изображения, подгоняя полиномиальную кривую к распределению интенсивности изображения и нахождение точки перегиба на кривой для использования в качестве порога.
Вот код:
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 и не нашел похожего подхода, поэтому я хочу спросить, хорош ли этот подход? Вы сталкивались с этим?
Я не видел этого раньше.
Я не могу уложиться в голове вокруг метода. Он не ищет точку перегиба полиномиальной подгонки. Я думаю, что он ищет точку, где производная является наиболее частой. Минимум производной от отсортированных значений производной — это значение производной, которое встречается не менее двух раз (сортировка такова, что ее производная всегда неотрицательна). Что означает этот пункт я не знаю. Вероятно, это один из максимумов или минимумов полиномиальной подгонки?
Человек на видео утверждает, что это их метод, то есть он его изобрел. Однако в их Страница Академии Google, похоже, нет статьи об этом методе.
В любом случае, поскольку человек на видео утверждает, что их метод дает такой же результат, как и Оцу, я не вижу смысла использовать непроверенный метод, когда Оцу настолько прост и хорошо зарекомендовал себя.
Я также рекомендую вам изучать обработку изображений из хорошей книги, а не из случайных руководств на YouTube. На YouTube много дерьма, и зачастую трудно отличить хорошее от плохого. Производственные ценности не обязательно коррелируют с правильностью.
@ user7427260: Абсолют производной — это набор значений >=0. Их сортировка приводит к неубывающей функции. Его производная равна 0, если эта функция имеет два одинаковых значения. Два одинаковых значения, если исходная функция имеет одну и ту же производную в двух точках. Это, скорее всего, произойдет в местах, где производная плоская, но вы не можете этого доказать, это просто вероятность. А если минимумов несколько?
«Минимум производной от отсортированных значений производной — это значение производной, встречающееся не менее двух раз». Не могли бы вы объяснить этот момент?