2.边缘检测
clc;clear all, close all;
I = imread('cameraman.tif');
%BW=edge(I)采用灰度或一个二值化图像I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。
BW1 = edge(I,'sobel');%自动选择阈值用Sobel算子进行边缘检测。 BW2 = edge(I,'canny');%自动选择阈值用canny算子进行边缘检测。 BW3 = edge(I,'prewitt');%自动选择阈值用prewitt算子进行边缘检测。 BW4 = edge(I,'roberts');%自动选择阈值用roberts算子进行边缘检测。 BW5 = edge(I,'log');%自动选择阈值用LOG算子进行边缘检测。subplot(2,3,1),imshow(I), title('Original Image'); subplot(2,3,2),imshow(BW1), title('sobel'); subplot(2,3,3),imshow(BW2), title('canny'); subplot(2,3,4),imshow(BW3), title('prewitt'); subplot(2,3,5),imshow(BW4), title('roberts'); subplot(2,3,6),imshow(BW5), title('log');
四 实验结果
1.图像阈值分割
原图原图的直方图100080060040020000100200用Otsu方法计算最优阈值T对图像二值化选择阈值T1=150/255对图像二值化
选择阈值T=120/255对图像二值化用Otsu方法计算最优阈值T1对图像二值化21
2.边缘检测
Original Imagesobelcannyprewittrobertslog
五 实验心得和体会
通过本次实验,掌握了在计算机上进行图象锐化特别是拉普拉斯算子锐化的方法。了解了中值滤波原理:设置一个奇数点的滑动窗口,将窗口中心点的像素值用窗口内各点的中值代替。锐化目的:增强图像的边缘或轮廓。提高了数字图像处理的理论知识及在计算机上实现的方法。在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟, 在此过程中,我们通过查找大量资料,请教老师和同学。使我再专业知识和动手实 践方面都得了到很好的提升,在此,要对给过我帮助的所有同学和各位指导老师再 次表示忠心的感谢!
22