Я новичок в Matlab и работаю над обработкой изображений. Я использую функцию roipoly для создания маски. Насколько я понимаю, я могу использовать это так:
I = imread('eight.tif');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
BW = roipoly(I,c,r);
figure, imshow(I)
figure, imshow(BW)
Изображение показано ниже:
Одно наблюдение, которое у меня было, заключалось в том, что интерполяция между соседними точками, как указано в матрице c и r, выполняется с помощью «линейной интерполяции», в другом смысле между точками всегда проводится прямая линия. Возможно ли, что каким-то образом включены другие типы интерполяции, такие как интерполяция квадратичным или кубическим сплайном?
Предположим, что я действительно хотел сделать это, как показано на рисунке ниже. [Простите мой рисунок, он не очень хорош].
Здесь кружками показаны точки на контуре. Я хотел, чтобы извлекаемая или создаваемая фигура имела форму, показанную линиями. Как видите, это возможно только в том случае, если мы делаем интерполяцию с помощью сплайнов или квадратных уравнений, а не линейной интерполяции, которую выполняет roipoly.
Как я могу это сделать ? Вы можете мне помочь?