Matlab 用圆替换边点的过滤器

Matlab 用圆替换边点的过滤器,matlab,computer-vision,edge-detection,Matlab,Computer Vision,Edge Detection,我有以下硬件任务: 转到“锯”图像。做边缘检测。现在,通过卷积, 将每个边点替换为一个小圆或一个小高斯点 我可以使用哪个过滤器执行此操作 谢谢大家! saw_image = imread('saw.jpg'); I = rgb2gray(saw_image); BW = edge(I,'canny'); [row, col] = find (BW); a = sub2ind(size(I), row, col)'; WindowSize = 9; newI=imfilter(I(a),fspe

我有以下硬件任务: 转到“锯”图像。做边缘检测。现在,通过卷积, 将每个边点替换为一个小圆或一个小高斯点

我可以使用哪个过滤器执行此操作

谢谢大家!

saw_image = imread('saw.jpg');
I  = rgb2gray(saw_image);
BW = edge(I,'canny');
[row, col] = find (BW);
a = sub2ind(size(I), row, col)';
WindowSize = 9;
newI=imfilter(I(a),fspecial('???',WindowSize));

不太清楚需要什么。 我想你应该这样做:

saw_image = randi(255,30,30,3);
I  = rgb2gray(saw_image);
BW = edge(I,'canny');
WindowSize = 3;
newI=imfilter(BW*255,fspecial('gaussian',WindowSize));

result = saw_image;
result(newI>0) = newI(newI>0);

这将创建一个边缘图像,对该图像进行卷积,并用边缘值替换原始图像中检测为边缘的所有区域。

您可以使用高斯滤波器;检查
fspecial
中提供的预定义过滤器列表。当我使用高斯过滤器时,我的图像变成一条直线。使用圆形结构元素进行膨胀如何?谢谢你的回答,但这不是必需的。锯子是一把真正的锯子,据我所知,这一节的目的是用圆替换锯子的“齿”。嗯,文本“用小圆替换每个边缘点”听起来不是这样。要检测牙齿,可以查找角点检测。