私はフィルムからフレームをインポートし、グレースケールに変換し、関心領域をフリーハンドで描画するためのコードを作成しました。 Chan-Vese領域の塗りつぶしを使用して、関心のある領域を取得し、これに基づいてマスクを作成します。私は最終的に私がコードでBW3と呼ばれる探しているバイナリイメージを得ることができます。今、これは愚かな部分です。コードを実行し(フレーム1〜58をロードする)、フレーム1のグレースケールイメージを表示して、関心領域を描画して最終的なバイナリイメージBW3を作成して保存できるように、ループを作成するにはどうすればよいですか?あなたはただ、これを達成するためにforループを使用することができ(すなわち58まで)フレームの数が限られていると仮定すると よろしく、 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