私は MATLAB の初心者です。このアルゴリズムを使用して matlab でフラッド フィリングを実装しようとしています。再帰関数を正しく使用していない可能性がありますが、何が間違っているのかわかりません。このコードにより、matlab が閉じます。次のコードを使用しています朝からデバッグしようとしていますが、問題を見つけることができませんでした
function [ colored_Image ] = floodFill( image, target_Loc_x, target_Loc_y, targetColor, replacementColor )
colored_Image = image;
if (target_Loc_x >= 1) && (target_Loc_x <= size(image,1)) && (target_Loc_y >= 1) && (target_Loc_y <= size(image,2))
if image(target_Loc_x,target_Loc_y) == targetColor
colored_Image(target_Loc_x,target_Loc_y) = replacementColor;
colored_Image = floodFill(colored_Image,target_Loc_x ,target_Loc_y + 1, targetColor, replacementColor);
colored_Image = floodFill(colored_Image,target_Loc_x + 1,target_Loc_y, targetColor, replacementColor);
colored_Image = floodFill(colored_Image,target_Loc_x,target_Loc_y - 1, targetColor, replacementColor);
colored_Image = floodFill(colored_Image,target_Loc_x - 1,target_Loc_y, targetColor, replacementColor);
end
end
end
を使用してこの関数を呼び出す
image = floodFill(im,1,1,0,127);
imshow(image);
im は 200 x 200 のマトリックス イメージです。黒 (0) を灰色 (127) にしたいのですが、助けていただければ幸いです。