文件名称:canny算子的实现
文件大小:360KB
文件格式:RAR
更新时间:2023-02-26 04:36:04
图像分析 canny USTC
USTC研一图像分析课程,自己实现canny算子 I = imread('test images\test images\lenna.jpg'); J= imread('test images\test images\airport.tif'); K = imread('test images\test images\cameraman.jpg'); L = imread('test images\test images\chip.tif'); I = rgb2gray(I); %% 高斯平滑及差分 %构造高斯差分模板并计算两个方向的梯度 [Ixx,Iyy] = My_Gaussian(I,1);%lenna [Jxx,Jyy] = My_Gaussian(J,3.5);%airport [Kxx,Kyy] = My_Gaussian(K,1.2);%camera [Lxx,Lyy] = My_Gaussian(L,0.8);%chip %% 梯度大小与方向 [angleII,II] = grad(Ixx,Iyy); [angleJJ,JJ] = grad(Jxx,Jyy); [angleKK,KK] = grad(Kxx,Kyy); [angleLL,LL] = grad(Lxx,Lyy); show_image1(I,Ixx,Iyy,II,1); show_image1(J,Jxx,Jyy,JJ,2); show_image1(K,Kxx,Kyy,KK,3); show_image1(L,Lxx,Lyy,LL,4); %% 非极大值抑制 III = NMS(II,angleII); JJJ = NMS(JJ,angleJJ); KKK = NMS(KK,angleKK); LLL = NMS(LL,angleLL); show_image2(II,III,5); show_image2(JJ,JJJ,6); show_image2(KK,KKK,7); show_image2(LL,LLL,8); %% 双阈值检测和连接 [edge_detI,edgeI] = My_Edge_Det(III);%Lena [edge_detJ,edgeJ] = My_Edge_Det(JJJ);%airport [edge_detK,edgeK] = My_Edge_Det(KKK);%camera [edge_detL,edgeL] = My_Edge_Det(LLL);%chip show_image3(edge_detI,edgeI,9); show_image3(edge_detJ,edgeJ,10); show_image3(edge_detK,edgeK,11); show_image3(edge_detL,edgeL,12);
【文件预览】:
matalb_code
----NMS.m(1KB)
----show_image1.m(235B)
----test images()
--------test images()
----show_image3.m(168B)
----My_Edge_Det.m(1KB)
----grad.m(151B)
----canny.m(1KB)
----My_Gaussian.m(1KB)
----show_image2.m(152B)