Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 边缘检测与泛光填充算法相结合的图像处理_Image_Html_Image Processing_Canvas - Fatal编程技术网

Image 边缘检测与泛光填充算法相结合的图像处理

Image 边缘检测与泛光填充算法相结合的图像处理,image,html,image-processing,canvas,Image,Html,Image Processing,Canvas,好的,我想写一个用于图像处理的区域填充工具,我想结合边缘检测和洪水填充算法。我看过不同类型的算法(canny、laplace-sobel等),但不知道如何实现它们并使它们适应我的环境 我已经能够从以下方面使用html5rocks示例:- 并可以将其应用于我的图像数据。我也可以将新颜色应用到我选择的图像中,但我不确定如何组合这两种颜色,以便我可以执行以下操作- 鼠标单击图像中的区域,并用新颜色替换旧颜色,在由鼠标单击周围的边缘检测过滤器定义的边缘和原始颜色定义的区域内(我打算尝试在给定公差内使用

好的,我想写一个用于图像处理的区域填充工具,我想结合边缘检测和洪水填充算法。我看过不同类型的算法(canny、laplace-sobel等),但不知道如何实现它们并使它们适应我的环境

我已经能够从以下方面使用html5rocks示例:-

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

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

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

它使用HTML5画布和javascript


希望这是有意义的…

为了使用图像处理算法,我建议您从matlab开始。如果您真的想了解这是如何做到的。
这是一门免费的图像处理课程

函数[output_args]=SobelEdgeDetection(图像)
maskX=[-1 01;-2 02;-1 01];
马斯基=[-1-2-1;0 0;1 2 1];
resX=conv2(图像,maskX);
resY=conv2(图像,maskY);
震级=sqrt(resX.^2+resY.^2);
方向=atan(resY/resX);
阈值=幅值<101;
震级(阈值)=0;
显示图像(大小);
结束
这是我写的sobel边缘检测函数的一个例子。你需要了解什么是卷积,在哪里使用它

如果你只是想用它。我建议你探索和其他图像处理。对于每个图像,您都需要学习如何设置正确的值

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