Commit 567f008c002550d5ef72e37ba9fc032c278e74c3
1 parent
c8150873
fix the ivote_3d code in matlab for the nissl-rat input data
Showing
1 changed file
with
30 additions
and
119 deletions
Show diff stats
Matlab_3D/main.m
@@ -5,45 +5,44 @@ total = tic; | @@ -5,45 +5,44 @@ total = tic; | ||
5 | 5 | ||
6 | 6 | ||
7 | % ******* Initialize voting parameters ************************************** | 7 | % ******* Initialize voting parameters ************************************** |
8 | -rmax = 7; %maximum radius of the cell | 8 | +rmax = 10; %maximum radius of the cell |
9 | ang_deg = 25.1; %half the angular range of the voting area | 9 | ang_deg = 25.1; %half the angular range of the voting area |
10 | ang = ang_deg * pi / 180; | 10 | ang = ang_deg * pi / 180; |
11 | -iter = 5; %number of voting iterations | 11 | +iter = 6; %number of voting iterations |
12 | t0 = 1.2; %threshold color | 12 | t0 = 1.2; %threshold color |
13 | -sigma = [1, 1, 1]; | 13 | +sigma = [4, 4, 2]; |
14 | % t = 0.1; | 14 | % t = 0.1; |
15 | d_ang= ang / (iter); | 15 | d_ang= ang / (iter); |
16 | 16 | ||
17 | % ******** Testing parameters ****************************************** | 17 | % ******** Testing parameters ****************************************** |
18 | -% p = [100, 50, 100]; | ||
19 | -% ps = [200, 200, 100]; | ||
20 | -ps = [100, 50, 40]; | ||
21 | -I = syn_Img(rmax , ps); | ||
22 | -% volfile = 'img\nissl-rat.vol'; | ||
23 | -% fid = fopen(volfile); % open the file that include the image | ||
24 | -% S = fread(fid, 3, 'int32'); | ||
25 | -% X = S(1); | ||
26 | -% Y = S(2); | ||
27 | -% Z = S(3); | ||
28 | -% | ||
29 | -% % load the VOL data into a 2D matrix | ||
30 | -% I = fread(fid,[X Y*Z], 'uint8'); | ||
31 | -% fclose(fid); | ||
32 | -% | ||
33 | -% %change this to a 3D matrix | ||
34 | -% I = (reshape(I, [X, Y, Z])); | ||
35 | -% | ||
36 | -% % invert the intensity | ||
37 | -% I = 255 - I; | 18 | +p = [100, 50, 100]; |
19 | +ps = [100, 100, 50]; | ||
20 | +% ps = [100, 50, 40]; | ||
21 | +% I = syn_Img(rmax , ps); | ||
22 | +volfile = 'nissl-rat.vol'; | ||
23 | +fid = fopen(volfile); % open the file that include the image | ||
24 | +S = fread(fid, 3, 'int32'); | ||
25 | +X = S(1); | ||
26 | +Y = S(2); | ||
27 | +Z = S(3); | ||
28 | + | ||
29 | +% load the VOL data into a 2D matrix | ||
30 | +I = fread(fid,[X Y*Z], 'uint8'); | ||
31 | +fclose(fid); | ||
32 | + | ||
33 | +%change this to a 3D matrix | ||
34 | +I = (reshape(I, [X, Y, Z])); | ||
35 | + | ||
36 | +% invert the intensity | ||
37 | +I = 255 - I; | ||
38 | 38 | ||
39 | %perform a gaussian blur | 39 | %perform a gaussian blur |
40 | Iblur = gauss_blur3d(I, sigma); | 40 | Iblur = gauss_blur3d(I, sigma); |
41 | 41 | ||
42 | -%%crop out a small subregion of I and Iblur | ||
43 | -% Iblur = Iblur(p(1):p(1)+ps(1)-1, p(2):p(2)+ps(2)-1, p(3):p(3)+ps(3)-1); | ||
44 | -% I = I(p(1):p(1)+ps(1)-1, p(2):p(2)+ps(2)-1, p(3):p(3)+ps(3)-1); | 42 | +%crop out a small subregion of I and Iblur |
43 | +Iblur = Iblur(p(1):p(1)+ps(1)-1, p(2):p(2)+ps(2)-1, p(3):p(3)+ps(3)-1); | ||
44 | +I = I(p(1):p(1)+ps(1)-1, p(2):p(2)+ps(2)-1, p(3):p(3)+ps(3)-1); | ||
45 | 45 | ||
46 | -% | ||
47 | % compute the gradient | 46 | % compute the gradient |
48 | [Igrad_y, Igrad_x, Igrad_z] = gradient(Iblur); | 47 | [Igrad_y, Igrad_x, Igrad_z] = gradient(Iblur); |
49 | 48 | ||
@@ -90,35 +89,6 @@ validPixels = (zeros(nV,1)); | @@ -90,35 +89,6 @@ validPixels = (zeros(nV,1)); | ||
90 | % indices reference the 3D image | 89 | % indices reference the 3D image |
91 | g_v_prime = (zeros(nV, (rmax^3))); | 90 | g_v_prime = (zeros(nV, (rmax^3))); |
92 | 91 | ||
93 | -%--------------Display current data------------------------- | ||
94 | -% subplot(3, 3, 1), | ||
95 | -% imagesc(squeeze(I(:, :, ceil(size(I, 3)/2)))); | ||
96 | -% | ||
97 | -% subplot(3, 3, 2), | ||
98 | -% imagesc(squeeze(I(:, ceil(size(I, 2)/2), :))); | ||
99 | -% | ||
100 | -% subplot(3, 3, 3), | ||
101 | -% imagesc(squeeze(I( ceil(size(I, 1)/2), :, :))); | ||
102 | -% % | ||
103 | -% subplot(3, 3, 4), | ||
104 | -% imagesc(squeeze(Iblur(:, :, ceil(size(Iblur, 3)/2)))); | ||
105 | -% | ||
106 | -% subplot(3, 3, 5), | ||
107 | -% imagesc(squeeze(Iblur(:, ceil(size(Iblur, 2)/2), :))); | ||
108 | -% | ||
109 | -% subplot(3, 3, 6), | ||
110 | -% imagesc(squeeze(Iblur(ceil(size(Iblur, 1)/2), :, :))); | ||
111 | -% | ||
112 | -% subplot(3, 3, 7), | ||
113 | -% imagesc(squeeze(Imag(:, :, ceil(size(Imag, 3)/2)))); | ||
114 | -% | ||
115 | -% subplot(3, 3, 8), | ||
116 | -% imagesc(squeeze(Imag(:, ceil(size(Imag, 2)/2), :))); | ||
117 | -% | ||
118 | -% subplot(3, 3, 9), | ||
119 | -% imagesc(squeeze(Imag(ceil(size(Imag, 1)/2), :, :))); | ||
120 | -% | ||
121 | -% colormap(gray); | ||
122 | 92 | ||
123 | %% vote | 93 | %% vote |
124 | tic; | 94 | tic; |
@@ -235,71 +205,12 @@ for itr = 1 : iter | @@ -235,71 +205,12 @@ for itr = 1 : iter | ||
235 | 205 | ||
236 | 206 | ||
237 | %% | 207 | %% |
238 | -t = 2500; | 208 | +t = 250; |
239 | out = Ivote; | 209 | out = Ivote; |
240 | out(out<t) = 0; | 210 | out(out<t) = 0; |
241 | -% out(out>=t) = 255; | ||
242 | -out = imregionalmax(out); | ||
243 | 211 | ||
244 | -out1(:,:,:,1) = mat2gray(Iblur); | ||
245 | -out1(:,:,:,2) = mat2gray(out); | ||
246 | -out1(:,:,:,3) = mat2gray(Iblur); | ||
247 | -% out = out1; | 212 | +fid_out = fopen('D:\ivote3_files\out.vol', 'w'); |
213 | +fwrite(fid_out, out); | ||
214 | +fclose(fid_out); | ||
248 | 215 | ||
249 | 216 | ||
250 | -figure(4); | ||
251 | - | ||
252 | -subplot(2, 3, 1), | ||
253 | -imagesc(squeeze(Iblur(:, :, ceil(size(Iblur, 3)/2)))); | ||
254 | - | ||
255 | -subplot(2, 3, 2), | ||
256 | -imagesc(squeeze(Iblur(:, ceil(size(Iblur, 2)/2), :))); | ||
257 | - | ||
258 | -subplot(2, 3, 3), | ||
259 | -imagesc(squeeze(Iblur( ceil(size(Iblur, 1)/2), :, :))); | ||
260 | - | ||
261 | -subplot(2, 3, 4), | ||
262 | -imagesc( squeeze( out1(:, :, ceil(size(Ivote, 3)/2),:) ) ); | ||
263 | - | ||
264 | -subplot(2, 3, 5), | ||
265 | -imagesc(squeeze(out1(:, ceil(size(Ivote, 2)/2), :, :))); | ||
266 | - | ||
267 | -subplot(2, 3, 6), | ||
268 | -imagesc(squeeze(out1( ceil(size(Ivote, 1)/2), :, :, :))); | ||
269 | - | ||
270 | -colormap(gray); | ||
271 | -%% | ||
272 | -% figure, imagesc(squeeze(Iblur(:, :, ceil(size(Iblur, 3)/2)))); colormap(gray); | ||
273 | -% figure, imagesc(squeeze(Ivote(:, :, ceil(size(Ivote, 3)/2),:))); colormap(gray); | ||
274 | -% figure, imagesc(squeeze(Iblur(:, ceil(size(Iblur, 2)/2), :))); colormap(gray); | ||
275 | -% figure, imagesc(squeeze(I(:, ceil(size(Ivote, 2)/2), :))); colormap(gray); | ||
276 | -% % figure, imagesc(squeeze(Iblur( ceil(size(Iblur, 1)/2), :, :))); colormap(gray); | ||
277 | -% figure, imagesc(squeeze(Ivote( ceil(size(Ivote, 1)/2), :, :))); colormap(gray); | ||
278 | -% | ||
279 | -% fid0 = fopen('D:\ivote3_files\iblur.vol', 'w'); | ||
280 | -% fwrite(fid0, Iblur); | ||
281 | -% fclose(fid0); | ||
282 | -% | ||
283 | -% fid1 = fopen('D:\ivote3_files\ivote1.vol', 'w'); | ||
284 | -% fwrite(fid1, Ivote1); | ||
285 | -% fclose(fid1); | ||
286 | -% | ||
287 | -% fid2 = fopen('D:\ivote3_files\ivote2.vol', 'w'); | ||
288 | -% fwrite(fid2, Ivote2); | ||
289 | -% fclose(fid2); | ||
290 | -% | ||
291 | -% fid3 = fopen('D:\ivote3_files\ivote3.vol', 'w'); | ||
292 | -% fwrite(fid3, Ivote3); | ||
293 | -% fclose(fid3); | ||
294 | -% | ||
295 | -% fid4 = fopen('D:\ivote3_files\ivote4.vol', 'w'); | ||
296 | -% fwrite(fid4, Ivote4); | ||
297 | -% fclose(fid4); | ||
298 | -% | ||
299 | -% fid5 = fopen('D:\ivote3_files\ivote5.vol', 'w'); | ||
300 | -% fwrite(fid5, Ivote5); | ||
301 | -% fclose(fid5); | ||
302 | -% | ||
303 | -% fid10 = fopen('D:\ivote3_files\ivote10.vol', 'w'); | ||
304 | -% fwrite(fid10, Ivote); | ||
305 | -% fclose(fid10); |