Advertisement
kpfp_linux

MRO projekt 3:46:45am dzień 1

Jan 7th, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.38 KB | None | 0 0
  1. img = imread('test7.png');
  2. bw = im2bw(img, 0.9);
  3. bw = ~bw;
  4.  
  5. % matlabpool open
  6. rots = 1:16; % todo: zwiększyć do 1:360. Niech się komp męczy, a co!
  7. rot2area = zeros(size(rots));
  8. rotang=360/size(rots,2);
  9. parfor i=rots
  10.     imm = imrotate(bw, i*rotang);
  11.    
  12.     % szumy won
  13.     L = bwlabel(imm);
  14.     s = regionprops(L, 'Area');
  15.     area_values = [s.Area];
  16.     idx = find(5 < area_values);
  17.     imm = ismember(L, idx);
  18.    
  19.     % pole otoczki
  20.     [r,c] = find(imm);
  21.     height = max(r)-min(r);
  22.     width = max(c)-min(c);
  23.     rot2area(i) = height * width;
  24. end
  25.  
  26. % dobieramy najlepsze obroty
  27.  
  28. [~,rots] = sort(rot2area);
  29. rots = rots(1:4);
  30.  
  31. imm = imrotate(bw, rots(4)*rotang);
  32.  
  33. % odszumiamy raz jeszcze
  34. L = bwlabel(imm);
  35. s = regionprops(L, 'Area');
  36. area_values = [s.Area];
  37. idx = find(5 < area_values);
  38. imm = ismember(L, idx);
  39.  
  40. imshow(imm)
  41.  
  42. % % szumy won
  43. % L = bwlabel(bw);
  44. % s = regionprops(L, 'Area');
  45. % area_values = [s.Area];
  46. % idx = find(5 < area_values);
  47. % bw = ismember(L, idx);
  48. % imshow(bw)
  49. %
  50. % % oblicz otoczkę wszystkiego
  51. % [r,c] = find(bw);
  52. % height = max(r)-min(r);
  53. % width = max(c)-min(c);
  54. % area = height * width;
  55.  
  56. %rots = 1:2;
  57. %t_im1rs = zeros(size(rots,2),1);
  58. %for angle = rots
  59. %    t_im1rs(angle) = 0; %imrotate(t_im1, angle);
  60. %    tmp = regionprops(imrotate(im, angle), 'BoundingBox');
  61. %    [ul_corner, width] = tmp.BoundingBox
  62. %end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement