У меня есть следующий код, с помощью которого я импортирую кадр из фильма, конвертирую в оттенки серого и рисую по свободной области интересующей области. Затем я использую область Chan-Vese, чтобы получить интересующую меня область и создать маску на основе этого. Я могу, наконец, получить двоичное изображение, которое я ищу, которое называется кодом BW3 в коде. Теперь это глупая часть. Как создать цикл таким образом, чтобы код выполнялся (загружать кадры с 1 по 58), представить мне изображение в градациях серого для кадра 1, разрешить рисовать интересующую область, а затем создать и сохранить окончательное двоичное изображение BW3? С уважением, JСоздайте петлю, чтобы создать рендеринг ROI
% Select Initial Image
for n = 5:87
frame = read(obj,n);
%Isolate the Blade
imggray = rgb2gray(frame);
h_im=imshow(imggray);
%Region of interest
% r = imrect(gca,[646,188,18,-648]);
% BW2 = createMask(r,h_im);
hROI = imfreehand(gca);
Position = getPosition(hROI);
BW2 = createMask(hROI);
%Get blade Binary
BW3 = activecontour(imggray, BW2, 1000, 'Chan-Vese');
% Fill Holes
BW3 = imfill(BW3, 'holes');
% Form masked image from input image and segmented image.
maskedImage = h_im;
maskedImage(~BW3) = 0;
%Save binary frame
filename = sprintf('C:..........\\binaryimage%d.png', n);
imwrite(BW3,filename,'png');
end
Привет, мне удалось это сделать сам. См. Измененный код. По какой-то причине я просто немного потерялся и не мог понять. еще раз спасибо – jer