1 function test_hough_ma(images_path, image_name)
2 i = imread([images_path image_name]);
5 green_filtered = imgaussfilt(green, 1.0);
6 otsu = ~im2bw(green_filtered, graythresh(green_filtered));
8 se = strel('rectangle', [3 3]);
9 edges = imdilate(otsu, se) - imerode(otsu, se);
11 s = [-1 0 1; -2 0 2; -1 0 1];
12 x_edge = conv2(double(green_filtered), s, 'valid');
13 y_edge = conv2(double(green_filtered), s', 'valid');
15 magnitudes = sqrt(x_edge .^ 2 + y_edge .^ 2);
18 x_dir = x_edge ./ magnitudes;
19 y_dir = y_edge ./ magnitudes;
21 disp('Applying Houg...');
23 [acc_votes, acc_radius] = HTCircleMa(x_dir, y_dir, edges(2:end-1, 2:end-1), [25, 35]);
26 disp('Finding ellipses...');
28 ellipses = find_ellipses(acc_votes, acc_radius);
31 name = ['Hough Ma - ' image_name];
33 {{green_filtered, 'original filtered with a gaussian, sigma=1'},...
34 {edges, 'edges (otsu -> dilate - erode)'},...
35 {expand_matrix(x_edge), 'composante x du gradient'},...
36 {expand_matrix(acc_votes), 'votes'}}, green, ellipses);
40 grayscale = linspace(0, 1, 255);
41 colormap([grayscale' grayscale' grayscale']);
46 [X, Y] = meshgrid(1:size(green, 2), 1:size(green, 1));
47 quiver(X, Y, expand_matrix(x_dir), expand_matrix(y_dir), 'Color', 'yellow');
48 savefig(['results/' name ' - gradient.fig']);