-
Notifications
You must be signed in to change notification settings - Fork 1
/
project.m
97 lines (96 loc) · 2.84 KB
/
project.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
choice = input('1.Image Compression using DCT\n2.Image compression using wcompress\n3.Edge Detection in Images\n');
if(choice == 1)
disp('Image compression by using DCT and blockproc function');
tic;
im=imread('pikachu.png');
if(size(im,3)>1)
inim=double(rgb2gray(im));
disp('The given image is RGB. It is converted to grayscale');
[r,c]=size(inim);
dim=strcat('image size',int2str(r),'X',int2str(c),' pixels');
disp(dim);
end
inim1=uint8(inim);
subplot(1,2,1);
imshow(inim1);
imwrite(inim1, 'original.jpg');
title 'Original Image';
blksize=8;
dctcoef=blockproc(inim,[blksize, blksize],@(block_struct)dct2(block_struct.data));
filt28=[1 1 1 1 1 1 1 0 ;
1 1 1 1 1 1 0 0 ;
1 1 1 1 1 0 0 0 ;
1 1 1 1 0 0 0 0 ;
1 1 1 0 0 0 0 0 ;
1 1 0 0 0 0 0 0 ;
1 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0];
filt10=[1 1 1 1 0 0 0 0 ;
1 1 1 0 0 0 0 0 ;
1 1 0 0 0 0 0 0 ;
1 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0];
filt6 = [1 1 1 0 0 0 0 0 ;
1 1 0 0 0 0 0 0 ;
1 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0];
filt3 = [1 1 0 0 0 0 0 0 ;
1 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0];
filt1 = [1 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 0];
filt=filt3;
cuttcoef=blockproc(dctcoef,[blksize, blksize],@(block_struct)block_struct.data.*filt);
decompim=blockproc(cuttcoef,[blksize, blksize],@(block_struct)idct2(block_struct.data));
subplot(1,2,2);
imshow(decompim,[]);
imwrite(uint8(decompim), 'compressed.jpg');
title 'Reconstructed Image';
toc;
elseif(choice == 2)
tic;
disp('Image compression using wavelet transform');
X = imread('pikachu.png');
[cr,bpp] = wcompress('c',X,'abc.wtc','spiht','maxloop',10);
Xc = wcompress('u','abc.wtc');
delete('abc.wtc');
subplot(1,2,1);
image(X);
subplot(1,2,2);
image(Xc);
imwrite(Xc,'wCompressed.jpg');
toc;
elseif(choice == 3)
tic;
disp('Detection of Egdes in an Image');
X = imread('brain.jpg');
blocksize = 256;
detected_edges = blockproc(rgb2gray(X),[blocksize blocksize],@(block_struct)edge(block_struct.data,'canny', 0.4));
subplot(1,2,1);
imshow(X);
title('Original Tumor Image');
subplot(1,2,2);
imshow(detected_edges);
title('Tumor Using Edge Detection');
toc;
else
disp('Invalid input!');
end