分别利用 Roberts、Prewitt、Sobel 和 Log 边缘检测算子,对原图像进行边缘检测,显示处理前、后的图像。
对256×256大小、256级灰度的数字图像lena.img进行如下处理:分别利用Roberts、Prewitt、Sobel和Log边缘检测算子,对原图像进行边缘检测,显...
对 256×256 大小、256 级灰度的数字图像 lena.img 进行如下处理:分别利用 Roberts、Prewitt、Sobel 和 Log 边缘检测算子,对原图像进行边缘检测,显示处理前、后的图像。
展开
1个回答
2013-06-18
展开全部
clear;
fid=fopen('d:\image\Lena.img','r'); %打开无格式文件
data1=(fread(fid,[256,256],'uint8'))';
subplot(2,3,1),imagesc(data1);
colormap(gray);
title('LENA','Color','r');
subplot(2,3,2);
data2=uint8(data1);
R=edge(data2,'Roberts');
imagesc(R);
title('Roberts检测算子');
subplot(2,3,3);
data2=uint8(data1);
Q=edge(data2,'Prewitt');
imagesc(Q);
title('Prewitt检测算子');
subplot(2,3,4);
data2=uint8(data1);
S=edge(data2,'Sobel');
imagesc(S);
title('Sobel检测算子');
subplot(2,3,5);
data2=uint8(data1);
T=edge(data2,'Log');
imagesc(T);
title('Log检测算子');
Matlab中运行过的 正确的!
fid=fopen('d:\image\Lena.img','r'); %打开无格式文件
data1=(fread(fid,[256,256],'uint8'))';
subplot(2,3,1),imagesc(data1);
colormap(gray);
title('LENA','Color','r');
subplot(2,3,2);
data2=uint8(data1);
R=edge(data2,'Roberts');
imagesc(R);
title('Roberts检测算子');
subplot(2,3,3);
data2=uint8(data1);
Q=edge(data2,'Prewitt');
imagesc(Q);
title('Prewitt检测算子');
subplot(2,3,4);
data2=uint8(data1);
S=edge(data2,'Sobel');
imagesc(S);
title('Sobel检测算子');
subplot(2,3,5);
data2=uint8(data1);
T=edge(data2,'Log');
imagesc(T);
title('Log检测算子');
Matlab中运行过的 正确的!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询