天天看点

图像曲率的计算

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).^;
Iup=(Iy.*Iy.*Ixx-*Ix.*Ixy.*Iy+Ix.*Ix.*Iyy);
%%  计算曲率的公式
K=Iup./Idown;
% K(K<)=;
figure;
imshow(abs(K));

%% 下一个公式
curvature=sqrt(Ixx.*Ixx+2*Ixy.*Ixy+Iyy.*Iyy);
figure;
imshow(curvature);
%% 高斯曲率
k1=(Ixx.*Iyy-Ixy.^)./(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.^-k1);
p2=H-sqrt(H.^-k1);
figure;
imshow(p1);
figure;
imshow(p2);