У меня есть изображение, показанное ниже (изображение 1), и я хочу найти ближайшие пиксели рядом с моей линией. На изображении 2, как вы можете видеть, красные кресты — это белые пиксели на моем изображении, а зеленые — это точки на моей линии. Линия отображается синим цветом. Итак, я хочу найти, какой красный пиксель ближе к зеленому пикселю. И после этого я хочу создать новую линию, которая проходит через ближайшие точки.
Итак, у меня есть массив с координатами точек моей линии и еще один массив с координатами всех белых пикселей (красные кресты) моего изображения.
Я написал код ниже, но он находит 100 случайных точек на моей линии (та, что с голубыми кружками), которые не являются ближайшими, например, в положении A2.
LineCoord - это ячейка с массивами, скажем, 100x2 каждый: (x1, y1) - начальные точки моей линии, (x2, y2) - конечные точки.
x1 = lineCoord{1}(1,1);
x2 = lineCoord{1}(end,1);
y1 = lineCoord{1}(1,2);
y2 = lineCoord{1}(end,2);
n = 100;
x0 = linspace(x1,x2,n);
x0 = round(x0);
y0 = linspace(y1,y2,n);
y0 = round(y0);
for i=1:length(x0)
plot(x0(i),y0(i),'o','LineWidth',1.5,'Color','c');
end