#matlab
#matlab
Вопрос:
Я новичок в обработке изображений с использованием Matlab. Я пытался следовать этому потоку — http://www.mathworks.com/matlabcentral/newsreader/view_thread/264686. Мне удалось выполнить обнаружение границ, а также сгенерировать массивы пикселистов. Я получаю три массива после запуска кода. Это код, который я использовал:
clear all;
A = 'C:UsersEADesktop1.tif';
B = imread(A,'tif');
B = double(B)/256;
BW = edge(B,'sobel');
imshow(BW);
L = bwlabel(BW);
STATS = regionprops(L,'PixelList');
Я не могу определить координаты конкретной точки на изображении (пузырька), используя данные, которые у меня есть в этих массивах. Как мне следует поступить, чтобы получить кривизну границы? Я не смог четко следовать теме, которую я опубликовал ранее. Было бы полезно, если бы кто-нибудь объяснил это лучше, поскольку я новичок.
Заранее спасибо!
Ответ №1:
Ответ будет зависеть от деталей используемого вами изображения, но, возможно, с использованием большего объема анализа, доступного через regionprops
. Например, если у вас есть объекты примерно эллиптической формы, вы могли бы использовать majoraxislength
и minoraxislength
свойства для определения кривизны.
Комментарии:
1. Спасибо за ответ! Я прикрепил изображение, которое я использую ниже. Как я могу использовать свойства majoraxislength и minoraxislength для определения кривизны? Я хочу определить кривизну в точке как внутри, так и снаружи пузырька. Возможно ли это с помощью вашего метода? Заранее спасибо! i.imgur.com/p3WAE.png
2. Хорошо, итак, если я правильно понимаю, кривизна равна величине, обратной радиусу окружности, поэтому для кривой в целом это можно вычислить путем вычисления соприкасающейся окружности , верно? Таким образом, вы можете использовать этот ответ , чтобы связать это со случаем эллипса.
3. Или альтернативно (и, надеюсь, эквивалентно) вы можете использовать параметрическое уравнение для эллипса и точное определение кривизны (см. Ссылку в предыдущем комментарии), чтобы получить выражение для кривизны.