У меня есть следующий код: MATLABVectorize MATLAB петля
meanv = [rmean,gmean,bmean];
for i = 1:1:image_info.Height
for j = 1:1:image_info.Width % for every pixel
x = image_rgb(i,j,1:3);
pix_color = [x(:,:,1),x(:,:,2),x(:,:,3)];
d = dist(meanv,pix_color');
if d <= threshold
S(i,j) = 1;
end
end
end
, приведенный выше фрагмент является частью программы, которая, из RGB изображений, сегменты объекта или цветов из нескольких точек, отмеченного пользователем. Сегментация достигается с помощью евклидова расстояния до среднего значений точек, отмеченных пользователем. Для каждого пикселя, если расстояние меньше заданного порога, тогда этот пиксель является белым в сегментированном изображении. В противном случае, черный.
Код работает хорошо, но он немного медленный. Как я могу воспользоваться тем фактом, что MATLAB намного быстрее с векторами и матрицами, чем с использованием циклов? Иными словами, код может быть - векторный:?
Для справки в будущем полезно описать, что ваш код достигает в простых словах. – Setsu
@ Сетсу да, теперь я читаю его, и ты прав. Сообщение отредактировано. –