3

好的,我正在寻找一个用于图像处理的区域填充工具,我想结合边缘检测和例如洪水填充算法。我看过不同类型的算法(canny、laplace sobel 等),但不明白如何实现它们并调整它们以适应我的情况。

我已经能够使用来自 html5rocks 的示例:-

http://www.html5rocks.com/en/tutorials/canvas/imagefilters/

并可以将其应用于我的图像数据。我也可以将新颜色应用到我选择的图像中,但我不确定如何组合 2 以便我可以执行以下操作 -

鼠标点击图像内的区域并用新颜色替换旧颜色,在由边缘检测过滤器围绕鼠标点击和原始颜色定义的边缘定义的区域内(我打算尝试在给定容差内使用原始颜色 HSL 值)

就像智能区域填充一样有效。

它使用 HTML5 画布和 javascript。

希望这是有道理的...

4

1 回答 1

3

为了使用图像处理算法,我建议你从 matlab 开始。如果您真的想了解这是如何完成的。
这是一个免费的图像处理课程https://class.coursera.org/images-2012-001/auth/welcome?type=logout&visiting=https%3A%2F%2Fclass.coursera.org%2Fimages-2012-001%2Fclass %2F索引

function [ output_args ] = SobelEdgeDetection( Image )

maskX = [-1 0 1 ; -2 0 2; -1 0 1];
maskY = [-1 -2 -1 ; 0 0 0 ; 1 2 1] ;

resX = conv2(Image, maskX);
resY = conv2(Image, maskY);

magnitude = sqrt(resX.^2 + resY.^2);
direction = atan(resY/resX);
thresh = magnitude < 101;
magnitude(thresh) = 0;
showImage(magnitude);

end

这是我写的sobel边缘检测函数的一个例子。您需要了解什么是卷积,以及在哪里使用它。

如果你只是想使用它。我建议您探索http://www.pixastic.com/lib/docs/actions/edges/和其他图像处理。对于每个图像,您都需要学习如何设置正确的值。

于 2013-01-26T02:17:55.260 回答