%%%% cloud%%%% uses Perlin noise to generate clouds clc;clear all;close all;addpath (' E:\PhotoShop algortihm\image processing\ps Algorithm '); Image=imread (' 4.jpg '); image=double (Image); [Row,col,layer]=size (Image); Basenoise=rand (row,col);p ersistance = 0.9;totalamplitude = 0.0;octavecount=10; Cloud_texture=zeros (Row,col); for I=0:octavecount amplitude=persistance.^ (octavecount-i); % Amplitude=persistance.^i; Totalamplitude=totalamplitude+amplitude; Cloud_texture=cloud_texture+generate_smoothnoise (Basenoise, i) *amplitude;endcloud_texture=cloud_texture/ Totalamplitude;imshow (cloud_texture); function Smoothnoise=generate_smoothnoise (basenoise, octave) smoothnoise=basenoise; [Row, Col]=size (basenoise); sampleperiod=2.^octave;samplefrequency=1/sampleperiod;for i=1:row Sample_i0=floor (i/ sampleperiod)) *sampleperiod; Sample_i1=mod (Sample_i0+sampleperiod,row); Vertical_blend = (i-sample_i0) * samplefrequency; For J=1:col sample_j0 = Floor (j/sampleperiod) * SAMPLEPERIOD; Sample_j1 = MoD (sample_j0 + sampleperiod,col); Horizontal_blend = (j-sample_j0) * samplefrequency; if (sample_i0<1) sample_i0=1; End if (sample_i1<1) sample_i1=1; End if (sample_j1<1) sample_j1=1; End if (sample_j0<1) sample_j0=1; End% blend the top corners top = cosine_interpolate (Basenoise (sample_i0,sample_j0),... b Asenoise (sample_i0,sample_j1), horizontal_blend); % blend the bottom and corners bottom = cosine_interpolate (Basenoise (sample_i1,sample_j0),... basenoise (samp LE_I1,SAMPLE_J1), horizontal_blend); % Final blend smoothnoise (i,j) = Cosine_interpolate (top, bottom, vertical_blend); Endendfunction y=cosine_interpolate (x1,x2,alpha) ft = Alpha * 3.1415927;f = (1-cos (ft)) *. 5;y=x1* (1-f) +x2*f;
Original
Complete with Perlin Nosie (PS filter-split into clouds)