
边缘检测算子sobel prewitt在图像处理中的应用
编程实现Sobel算子编程实现Prewitt在matlab中对图像的运用2个m代码谁发下给我急用谢谢了还有2者处理结果的比较...
编程实现Sobel算子 编程实现Prewitt在matlab中对图像的运用 2个m代码 谁发下给我 急用谢谢了 还有2者处理结果的比较
展开
1个回答
展开全部
% -------------------------Sobel算子-------------------------
I=I3;
[m,n]=size(I);
G_sh=zeros(m,n); % 水平方向的边缘
G_sv=zeros(m,n); % 垂直方向的边缘
G_s=zeros(m,n); % 不考虑方向的边缘
t=input('请输入Sobel算子的域值:') % I的域值
g1=zeros(m,n);g2=zeros(m,n);
for i=2:m-1
for j=2:n-1
g1(i,j)=I(i-1,j+1)+2*I(i,j+1)+I(i+1,j+1)-1*I(i-1,j-1)-2*I(i,j-1)-I(i+1,j-1);
g2(i,j)=I(i-1,j-1)+2*I(i-1,j)+I(i-1,j+1)-I(i+1,j-1)-2*I(i+1,j)-I(i+1,j+1);
end
end
g=abs(g1)+abs(g2);
for i=1:m
for j=1:n
if g1(i,j)>t
G_sv(i,j)=1;
end
if g2(i,j)>t
G_sh(i,j)=1;
end
if g(i,j)>t
G_s(i,j)=1;
end
end
end
figure,imshow(G_sv),title(strcat('垂直方向边缘 t=',num2str(t)))
figure,imshow(G_sh),title(strcat('水平方向边缘 t=',num2str(t)))
figure,imshow(G_s),title(strcat('不考虑方向边缘 t=',num2str(t)))
prewitt算子就把上面g1,g2的公式里的2换成1就是了
I=I3;
[m,n]=size(I);
G_sh=zeros(m,n); % 水平方向的边缘
G_sv=zeros(m,n); % 垂直方向的边缘
G_s=zeros(m,n); % 不考虑方向的边缘
t=input('请输入Sobel算子的域值:') % I的域值
g1=zeros(m,n);g2=zeros(m,n);
for i=2:m-1
for j=2:n-1
g1(i,j)=I(i-1,j+1)+2*I(i,j+1)+I(i+1,j+1)-1*I(i-1,j-1)-2*I(i,j-1)-I(i+1,j-1);
g2(i,j)=I(i-1,j-1)+2*I(i-1,j)+I(i-1,j+1)-I(i+1,j-1)-2*I(i+1,j)-I(i+1,j+1);
end
end
g=abs(g1)+abs(g2);
for i=1:m
for j=1:n
if g1(i,j)>t
G_sv(i,j)=1;
end
if g2(i,j)>t
G_sh(i,j)=1;
end
if g(i,j)>t
G_s(i,j)=1;
end
end
end
figure,imshow(G_sv),title(strcat('垂直方向边缘 t=',num2str(t)))
figure,imshow(G_sh),title(strcat('水平方向边缘 t=',num2str(t)))
figure,imshow(G_s),title(strcat('不考虑方向边缘 t=',num2str(t)))
prewitt算子就把上面g1,g2的公式里的2换成1就是了

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询