实验的目的:1.求一图像的水平集、线2.滤波3分割。

  • 虫虫123456
    了解作者
  • matlab
    开发工具
  • 6.3KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-06-27 23:30
    上传日期
实验的目的:1.求一图像的水平集、线2.滤波3分割。
5f732b6f78d2f.zip
  • Code for experiment 2
  • level_line.m
    1.1KB
  • level_line_set.m
    1.6KB
  • Arnold.m
    2KB
  • level.m
    1.5KB
  • level_set_movie.m
    695B
  • noise.m
    558B
  • contour_line.m
    682B
  • edge_distill.m
    777B
  • levelset_set.m
    503B
  • level_set.m
    638B
  • levelset2image.m
    868B
  • www.pudn.com.txt
    218B
内容介绍
function Arnold(Image,Frequency,crypt) %图像数值矩阵Arnold转换函数 %输入参数 % Image: 待加密(待解密)图像文件名(注意写格式后缀),只能为二维 % Frequency: 图像需要变换迭的次数 % crypt 0~加密;1~解密 %输出参数 % M: 转换后图像数据矩阵 % 输出由M对应的图像文件 if nargin<3 disp('请按程序的输入参数格式输入参数!!!'); return; end if crypt~=0 & crypt~=1 disp('encrypt 必须为0或1!'); end %将Q赋值给M,计算Q的大小 Q=imread(Image); M = Q ; Size_Q = size(Q); %如果不是二维或三维数组,则不处理,返回 if (length(Size_Q) == 2) if Size_Q(1) ~= Size_Q(2) disp('不是方阵,不能Arnold转换'); return end else disp('不是二维数组,不进行Arnold变换'); return end %------------------------------------------ %Arnold转换 n = 0; K = Size_Q(1); M1_t = Q; M2_t = Q; if crypt==1 %解密 Frequency=ArnoldPeriod( Size_Q(1) )-Frequency; end for s = 1:Frequency n = n + 1; if mod(n,2) == 0 for i = 1:K for j = 1:K c = M2_t(i,j); M1_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c; end end else for i = 1:K for j = 1:K c = M1_t(i,j); M2_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c; end end end end if mod(Frequency,2) == 0 M = M1_t; else M = M2_t; end %------------------------------------------ %imwrite( double(M)/255,strcat( 'Arnold_',num2str(Frequency),'_',Image ),'bmp' ); imshow(M); function Period=ArnoldPeriod(N) % 求周期 if ( N<2 ) Period=0; return; end n=1; x=1; y=1; while n~=0 xn=x+y; yn=x+2*y; if ( mod(xn,N)==1 && mod(yn,N)==1 ) Period=n; return; end x=mod(xn,N); y=mod(yn,N); n=n+1; end
评论
    相关推荐