我是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);
我有一张200x200的矩阵图像im,我希望将其中的黑色(0)变成灰色(127),如果有帮助,感激不尽。