|
42 | 42 | if p.Results.filter=='butterworth'
|
43 | 43 | %construct Fourier space butterworth bandpass filter
|
44 | 44 | %same (usually square) size as image
|
45 |
| - masksize_x = size(fourier_shifted,2); %switch dimensions in case no padding |
46 |
| - masksize_y = size(fourier_shifted,1); |
| 45 | + masksize_x = size(fourier_shifted,1); |
| 46 | + masksize_y = size(fourier_shifted,2); |
47 | 47 | center_coord_x = floor(masksize_x/2)+1;
|
48 | 48 | center_coord_y = floor(masksize_y/2)+1;
|
49 | 49 | n=p.Results.butterworthN;
|
50 | 50 | mask=butterworthMask(masksize_x, masksize_y, low_cutoff, high_cutoff,n);
|
51 | 51 | elseif p.Results.filter=='hard'
|
52 | 52 | %construct hard cutoff Fourier space mask
|
53 | 53 | mask = zeros(size(fourier_shifted));
|
54 |
| - masksize_x = size(mask,2); |
55 |
| - masksize_y = size(mask,1); |
| 54 | + masksize_x = size(mask,1); |
| 55 | + masksize_y = size(mask,2); |
56 | 56 | center_coord_x = floor(masksize_x/2)+1;
|
57 | 57 | center_coord_y = floor(masksize_y/2)+1;
|
58 | 58 | for col = 1: masksize_y
|
|
84 | 84 | fourier_masked_shift = fftshift(fourier_masked);
|
85 | 85 | %transform back and cut away padding
|
86 | 86 | padded_image_out = real(ifft2(fourier_masked_shift));
|
87 |
| -left_border = (masksize_x-image_size(1))/2; |
88 |
| -top_border = (masksize_y-image_size(2))/2; |
| 87 | +left_border = ceil((masksize_x-image_size(1))/2); |
| 88 | +top_border = ceil((masksize_y-image_size(2))/2); |
89 | 89 | image_out= padded_image_out(left_border+1:left_border+image_size(1), ...
|
90 | 90 | top_border+1:top_border+image_size(2));
|
91 | 91 | end
|
|
133 | 133 | dims = size(image);
|
134 | 134 | maxdim = max(dims);
|
135 | 135 | i = ceil(log2(maxdim*1.5)); %TODO check
|
136 |
| - N=i^2; |
137 |
| - image=padarray(image,[N/2, N/2], padding_opt); |
| 136 | + N=2^i; |
| 137 | + x_pad=N-dims(1); |
| 138 | + y_pad=N-dims(2); |
| 139 | + image=padarray(image,[ceil(x_pad/2), ceil(y_pad/2)], padding_opt); |
| 140 | + if mod(x_pad,2)==1 |
| 141 | + image=image(1:end-1,:); |
| 142 | + end |
| 143 | + if mod(y_pad,2)==1 |
| 144 | + image=image(:,1:end-1); |
| 145 | + end |
138 | 146 | end
|
139 | 147 | end
|
140 | 148 | %else if argument is nonexistent, empty, or invalid option:
|
|
0 commit comments