图像曲率的计算

I=imread('E:6.jpg');
 I=rgb2gray(I);
[Ix Iy]=gradient(double(I));
imshow(Ix);
figure;
imshow(Iy);
[Ixy ,Iyy]=gradient(Iy);
figure;
imshow(Ixy);
[Ixx, Ixy1]=gradient(Ix);
figure;
imshow(Ixy1);
%% %%%%%计算曲率的下一部分  下面的各个点事像素间的相城,,每个像素点之间的乘法
Idown=(Ix.*Ix+Iy.*Iy).^1.5;
Iup=(Iy.*Iy.*Ixx-2*Ix.*Ixy.*Iy+Ix.*Ix.*Iyy);
%% 计算曲率的公式 K=Iup./Idown; % K(K<0)=0;
figure;
imshow(abs(K));

%% 下一个公式 curvature=sqrt(Ixx.*Ixx+2*Ixy.*Ixy+Iyy.*Iyy); figure; imshow(curvature); %% 高斯曲率
k1=(Ixx.*Iyy-Ixy.^2)./(Ix.*Ix.*Iy.*Iy-Ix.*Iy.*Ix.*Iy);
figure;
imshow(k1)
%% 平均曲率 H=(Ix.*Ix.*Iyy+Iy.*Iy.*Ixx-2.*Ix.*Iy.*Ixy)./(2*(Ix.*Ix.*Iy.*Iy-Ix.*Iy.*Ix.*Iy)); figure; imshow(H); %% 主要曲率
p1=H+sqrt(H.^2-k1);
p2=H-sqrt(H.^2-k1);
figure;
imshow(p1);
figure;
imshow(p2);

你可能感兴趣的:(图像曲率)