--- a +++ b/Code/main1.m @@ -0,0 +1,89 @@ +clear ; +clear ; + +org=imread('4Perfect.jpg'); +org=imresize(org,[256 256]); +noisy= imnoise(org,'gaussian',0,0.001);% % add noise of mean 0, variance 0.005 +subplot(3,3,1), imshow(org,[]), title('Original Image'); +subplot(3,3,2), imshow(noisy,[]), title('Noisy Image'); + +% start of calling normal shrink denoising algorithm + +ns_r = normal_shrink(noisy(:,:,1)); +ns_g = normal_shrink(noisy(:,:,2)); +ns_b = normal_shrink(noisy(:,:,3)); +ns_r= uint8(ns_r); +ns_g= uint8(ns_g); +ns_b= uint8(ns_b); +ns = cat(3, ns_r, ns_g, ns_b); +subplot(3,3,4), imshow(ns,[]), title('normal shrink'); + +% end of calling normal shrink denoising algorithm + +% start of calling bilateral filter + +ns2gray = rgb2gray(ns); +ns2gray = double(ns2gray); +B = bilateral(ns2gray); +subplot(3,3,5), imshow(B,[]), title('bilateral'); + +% end of calling bilateral filter + +%enhanced image +enha_imadj = imadjust(uint8(B)); +enha_histeq = histeq(uint8(B)); +enha_adapthisteq = adapthisteq(uint8(B)); + +% start of edge based segmentation + +%kirsch operator +kris = krisch(B); +subplot(3,3,7), imshow(kris,[]), title('krisch'); +%extended kirsch operator +kris55 = krisch55(B); +subplot(3,3,8), imshow(kris55,[]), title('krisch55'); +%extended sobel operator +sob55 = sobel55(B); +subplot(3,3,9), imshow(sob55,[]), title('sobel 5*5'); + +% end of edge based segmentation + +% start of threshold based segmentation + +%ostu threshold +ostu_img = ostu(B); +figure;imshow(ostu_img,[]),title('ostu'); + +% end of threshold based segmentation + +% kmeans clustering +figure; + [k, class, img_vect]= kmeans(B, 5); + for clust = 1:k + cluster = reshape(class(1:length(img_vect),clust:clust), [256,256] ); + subplot(1,k,clust), imshow(cluster,[]), title('k-means cluster '); + end + + %adaptive clustering + [k, class, img_vect, noOfIter]= adaptive_kmeans(B); + %title(['adaptive kmeans- total iteration' num2str(noOfIter)]); + figure; + for clust = 1:k + cluster = reshape(class(1:length(img_vect),clust:clust), [256,256] ); + subplot(1,k,clust), imshow(cluster,[]), title({'adaptivekmeans:';['iteration ' num2str(noOfIter)]}); + end + + %fuzzy c means + img = double(B); + k = 5; + [ Unew, centroid, obj_func_new ] = fuzzyCMeans( img, k ); + figure; + for i=1:k + subplot(1,k,i); + imshow(Unew(:,:,i),[]), title('fuzzy Cmeans'); + end + + % watershed algorithm + figure; + watershedSeg(B, sob55); + \ No newline at end of file