PK (*8 META-INF/PK '*8'wMETA-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: 1.6.0_03-b05 (Sun Microsystems Inc.) Main-Class: houghtransform.Main Class-Path: lib/AbsoluteLayout.jar X-COMMENT: Main-Class will be added automatically by build PK *8houghtransform/PK *8houghtransform/icons/PK *8houghtransform/shape/PK k6iE houghtransform/Hough.class1 ,a +b +c +d +e $f $g +h +ij k lm nop qr st uv@ uw@ !TD-P nxy az { |} ~ u u $ + $ $ +ii Lhoughtransform/ImageOperations;imgLjava/awt/image/BufferedImage; houghImageheightIwidthpixels[Ihoughimagepixels#(Lhoughtransform/ImageOperations;)VCodeLineNumberTableLocalVariableTablethisLhoughtransform/Hough;!(Ljava/awt/image/BufferedImage;)VgetImagePixels()Ve Ljava/lang/InterruptedException;pgLjava/awt/image/PixelGrabber; findLinesjikalpharedgreenbluecolorhoughaccumulator[[Icenter_xcenter_ytmphh houghintense thetastepDrasterLjava/awt/image/WritableRaster; colorModelLjava/awt/image/ColorModel;getIi"()Lhoughtransform/ImageOperations;setIi SourceFile Hough.java 8A 23 43 ^9 /0 @A 56java/awt/image/PixelGrabber 8 java/lang/InterruptedException interrupted waiting for pixels! image fetch aborted or errored java/lang/StringBuilder Larghezza:  2 hh: java/awt/image/BufferedImage 8 10  -.houghtransform/Houghjava/lang/Object getHeight!(Ljava/awt/image/ImageObserver;)IgetWidth(Ljava/awt/Image;IIII[III)V grabPixels()Zjava/lang/SystemerrLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)V getStatus()Ijava/lang/Mathmax(II)Isqrt(D)Doutappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;cossin(III)V getRaster!()Ljava/awt/image/WritableRaster; getColorModel()Ljava/awt/image/ColorModel;java/awt/image/WritableRastersetPixel(II[I)V!+,-./0102343567689:0****+*****;"! "$%+&/'<0=>0/.8?:0****+*****;") *+,+-/.<0=>0/0@A: U***h Y**** * L+ W M+~ .36 ;. 57.:3>6;7<?=@?K@SATC< 7 BCU=>.'DEFA: *l=*l>**6k66o9hLY* h!6  *#6  h+ 2 O  6  *6  **  *h `.z~6 *  *h `.z~6 *  *h `.z~6 *  *h `.~6 ~ ~X6N dk"k dk#kc6`6h+2\.`O   *$Yh%&*&': *&(: 6  *M6  h; YOY+ 2 .OY+ 2 .OY+ 2 .O:     ) „ ;&HIMN(P,Q5R@Th[t\]\[bcjklm o/w9x[zb{s}~wcb <wG3 k)H3 2RI3J3 K3 L3  {M3H3 G3  N6 AG3 SH3  =>@OPQ3R3S3(T3,U35VW`XY WZ[ \]:/**;< =>^9:>*+*; <=>-._`PK k6 Խ houghtransform/ImageFilter.class18  ! "#$ %&'()*+,-.()VCodeLineNumberTableLocalVariableTablethisLhoughtransform/ImageFilter;accept(Ljava/io/File;)ZfLjava/io/File; extensionLjava/lang/String;getDescription()Ljava/lang/String; SourceFileImageFilter.java / 012 34tiff5 67tifgifjpegjpgpngOnly image file acceptedhoughtransform/ImageFilter"javax/swing/filechooser/FileFilter java/io/File isDirectory()Zhoughtransform/Utils getExtension"(Ljava/io/File;)Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z! /* N++M,=,0,',,,  , " H"J$L( NN@- - PK ب*8Bhoughtransform/ImageFrame.class2` 1 2 3 4 5 6 7 8 9: ; < = >? >@ AB C D E F GHIbimgLjava/awt/image/BufferedImage;backupjpiLjavax/swing/JPanel;getIFrameImage ()Ljava/awt/image/BufferedImage;CodeLineNumberTableLocalVariableTablethisLhoughtransform/ImageFrame;setIFrameImage!(Ljava/awt/image/BufferedImage;)V3(Ljava/awt/image/BufferedImage;Ljava/lang/String;)VbiititleLjava/lang/String;setUp getBackup setBackup SourceFileImageFrame.java  'J .& KL ML NL OL PQ RLjava/awt/Color 'S TU ,&V WX YX Z[houghtransform/ImagePanel '\  ]^ _J houghtransform/ImageFramejavax/swing/JInternalFrame()V setClosable(Z)VsetIconifiable setResizablesetMaximizablesetTitle(Ljava/lang/String;)V setOpaque(III)V setBackground(Ljava/awt/Color;)Vjava/awt/image/BufferedImagegetWidth!(Ljava/awt/image/ImageObserver;)I getHeightsetSize(II)V<(Ljava/awt/image/BufferedImage;Lhoughtransform/ImageFrame;)Vadd*(Ljava/awt/Component;)Ljava/awt/Component;repaint! /*!#" #$%& >*+! '("#$'( A**+*****,* * Y *+ !. *+ ,-./0"1'2;4@6" A#$A)A*+,& 7*+****Y****W*!9;<)=2>6?"7#$7)- /*!B" #$.& >*+! FG"#$/0PK F*8)+C3C3$houghtransform/ImageOperations.class2 c ?333        !"# $%& '( )* + ,- . /0 1 2 3 4 56 7 8 9 :; :<= >? %@ %A B %C D EF G HI@ !TD- EJ EK HL M N OP EQ?ff> RS RT U V W XY %Z[ \ ] R^ _` _ab Jc Jdef Mg h ij Mkl Sm Sno $pq Er Es tu Ov wx>?yinstance Lhoughtransform/ImageOperations;reportLjava/lang/String; imageNamebarLjavax/swing/JProgressBar;jdeLjavax/swing/JDesktopPane; edgeKernel[FtresholdFsobelkernelhorizontalsobelkernelvertical()VCodeLineNumberTableLocalVariableTablethis setKernel([F)Vker getKernel()[F getReport()Ljava/lang/String; getImageName getInstance"()Lhoughtransform/ImageOperations; StackMapTable loadImage.(Ljava/io/File;)Ljava/awt/image/BufferedImage;imageLjava/awt/image/BufferedImage;eLjava/io/IOException;fileLjava/io/File;#convolve>(Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;imgkernelLjava/awt/image/Kernel;opLjava/awt/image/ConvolveOp;filter^(Ljava/awt/image/BufferedImage;Ljava/awt/image/BufferedImageOp;)Ljava/awt/image/BufferedImage; Ljava/awt/image/BufferedImageOp; filteredImagesave/(Ljava/io/File;Ljava/awt/image/BufferedImage;)Vioe imageToSavewIhbig2Ljava/awt/Graphics2D;z0{getLines?(Ljava/awt/image/BufferedImage;Z)Ljava/awt/image/BufferedImage;jirhothetaalpharedgreenbluecolor[I houghlinesrasterLjava/awt/image/WritableRaster; colorModelLjava/awt/image/ColorModel;ktempyxpeak forceimageZheightwidthprogress houghwidth houghheight houghspace[[Ipixelshighrotresh linesfounddrawnext_hnext_w|}getShapeByTemplatescalerbpLhoughtransform/RBpair;xcycggradientmod listofvalsLjava/util/LinkedList;argbarga houghshapeifiLhoughtransform/ImageFrame;apxwidth apxheighthwhhhscale scalestepminmodsobvertsobhori[[[I~getImagePixels$(Ljava/awt/image/BufferedImage;II)[I Ljava/lang/InterruptedException;bimpixspgLjava/awt/image/PixelGrabber;logetGradientOrientation (III[I[I)D vertipixshoripixstDgetGradientModule (III[I[I)IgetBar()Ljavax/swing/JProgressBar;setBar(Ljavax/swing/JProgressBar;)VgetEdge colordataLjava/lang/Object;pixvertpixhorinewimgedgedresult getEllipsegetJde()Ljavax/swing/JDesktopPane;setJde(Ljavax/swing/JDesktopPane;)V getTreshold()F setTreshold(F)V5(Ljava/io/InputStream;)Ljava/awt/image/BufferedImage; inputStreamLjava/io/InputStream; SourceFileImageOperations.java st mn op fg hg dehoughtransform/ImageOperations z Image succesfully loaded!!java/io/IOException 'There is an error while loading image:   tjava/awt/image/Kernel |} sjava/awt/image/ConvolveOp s java/awt/image/BufferedImage    s    {  tjpg java/lang/StringBuilderWrite image exception:      ij      |     rn yz qn hogh width:  hough height: ~  houghtransform/RBpair  houghtransform/ImageFrameScale factor: s kl  java/awt/image/PixelGrabber s java/lang/InterruptedException interrupted waiting for pixels!  }   image from streamjava/lang/Object java/io/Filejava/awt/Graphics2Djava/awt/image/WritableRasterjava/awt/image/ColorModeljava/util/LinkedListjavax/imageio/ImageIOreadgetNamejava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)VprintStackTrace(II[F)V(Ljava/awt/image/Kernel;)VgetWidth()I getHeightgetType(III)Vjava/awt/image/BufferedImageOp\(Ljava/awt/image/BufferedImage;Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;!(Ljava/awt/image/ImageObserver;)IcreateGraphics()Ljava/awt/Graphics2D; drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)ZdisposewriteA(Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/File;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessagetoStringjava/lang/Mathsqrt(D)Djavax/swing/JProgressBar setMaximum(I)VcossinsetValue getRaster!()Ljava/awt/image/WritableRaster; getColorModel()Ljava/awt/image/ColorModel;setPixel(II[I)Vround(F)Ihoughtransform/RTable()Lhoughtransform/RTable; getMinmodule(I)Ljava/lang/StringBuilder;getPairsValuesByGradient(F)Ljava/util/LinkedList;sizeget(I)Ljava/lang/Object;getRgetBeta3(Ljava/awt/image/BufferedImage;Ljava/lang/String;)Vjavax/swing/JDesktopPaneadd*(Ljava/awt/Component;)Ljava/awt/Component; setVisible(Z)V(Ljava/awt/Image;IIII[III)V grabPixels()Zerratan2(DD)D toDegreesgetDataElements'(ILjava/lang/Object;)Ljava/lang/Object;setDataElements(IILjava/lang/Object;)V!c defghgijklmnopqnrnstul:** Y QY QY QY QY QY QY QY QY Q*v*3/w :xeyzu>*+v :;wxe{n|}u/*v>w xe~u/*vBw xeu/*vFw xe uG Y vPQ RUu$+ M*+ * ,M, v"\^ _`abc"dw*$xe$UunY*MY,N*+-vijkw*xeuu!Y+++N,+-W-L+vopqrw*!xe!! u#_,>,6Y,: :,!W"#+$W":%Y&'()(*3<? v. xy {|$}.~3<?A^wRA_xe__Y RB$;?u b+>+66*++: hh`,6h6-:6  "6   2 O  *./6  6    h `.z~6   h `.z~6  h `.z~6  h `.~6~~S6I 0ko2k 0ko3kc6    2\.`O 4*. 4 wY:  5:  6: 6N6> YOY2.OY2.OY2.O: 7 6 6 6 606 2. 2.6 ߄ *j86-:6!62O666662.62.66U6F 3`6`6 2. 6 h6^6O0ko2k0ko3kc6d2.2O+:5:6:6X6I2.8 YOY2.OY2.OY2.O:7v` */9CMV\bku~#/;AGPVZhov$.7@FLORU_ivy&1<BHNTW^eox!w 4F <& # M vx n  ByRhf o_ vX $41'%IXRbbX rLh\xe */9    $OxRuUrWp^ieb5< -   [-@H-I-F- -"- A - - -  -- # K-- Eut+=+>9j869j866:86;<6 **W=>**+?+++: **W@>**+?+++: *++++: %Y&A(BC(B*D: 656%6 22Oڄ*./6t6\ h`.z~6 h`.z~6 h`.z~6 h`.~6~~*  E8*  F6;G:6H6`j8IJ:KjL2kc6KjL3kc6B=6/ 22\.`O 22. 22.6fS*.4*j866E656% 22. 22Oڄʄ6Y:5:6:6I69 22.6 YOYOYOYO:7ƄMY%Y&N(B*O:*PQWR[+v*J'( *+ -$.(0+234<5Q7Z8o;GHIJKLKJIQRSTU,V?WOYu]^dfhjklmno p!q0tMkSjYS_}hRn{&17=\flrw-)9pz_ Dp@,-?O _w)9~I#& =M\txetn h^ T$P(Lp+I3A Q# o   {p$D   WD@HDID0 D  "%D <4Du .h :SY+T:UW:WX!"Vv"$,wH$ .xe...'"uh`.h`.Y9Zv wHxeunh`.h`.`vw>xeu/*.vw xeu>*+.v wxeiju"+=+>*.*.hh/*. *.4**W=>**+?+:*. *. 4**W@>**+?+:*. *.4-:Y:5:6: h : 6  h)   . .`O*. *. 4 6  E6  &   h `.[:    \ *. *. 4 vn .7DT]jz w.  ) H "xe" Dj  L %%+ -'(u6vwxe  u/*Pvw xe  u>*+Pv wxekl u/*vw xeu>*#v wxeopu"+]M*^* ,M, v"     w*"xe"Stui Y_QY QY`QYaQY QYbQY_QY QY`Q@ Y`QYbQY`QY QY QY QY_QYaQY_Q=v 145PK ب*8oL??houghtransform/ImagePanel.class2J $ % &' () *+ , - . /0 /1 2345myframeLhoughtransform/ImageFrame;<(Ljava/awt/image/BufferedImage;Lhoughtransform/ImageFrame;)VCodeLineNumberTableLocalVariableTablethisLhoughtransform/ImagePanel;biLjava/awt/image/BufferedImage;g2Ljava/awt/Graphics2D;paint(Ljava/awt/Graphics;)VgLjava/awt/Graphics;insetsLjava/awt/Insets; StackMapTable SourceFileImageFrame.java 6 7 89: ;<= >? @6 A6 BCD EF GFH >Ihoughtransform/ImagePaneljavax/swing/JPanel()Vhoughtransform/ImageFramegetIFrameImage ()Ljava/awt/image/BufferedImage;java/awt/image/BufferedImagecreateGraphics()Ljava/awt/Graphics2D;java/awt/Graphics2D drawImageP(Ljava/awt/Image;Ljava/awt/geom/AffineTransform;Ljava/awt/image/ImageObserver;)Zvalidaterepaint getInsets()Ljava/awt/Insets;java/awt/InsetsleftIbottomjava/awt/Graphics3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z %**,,N-,W**PQ TVY Z$[*%%%y&**M+*, ,  W^ _`%a && ! "#PK F*8[!houghtransform/Main.class2'      ()VCodeLineNumberTableLocalVariableTablethisLhoughtransform/Main;main([Ljava/lang/String;)Vargs[Ljava/lang/String;mwLhoughtransform/MainWindow; SourceFile Main.java houghtransform/MainWindowHough tool by blaskino.net !" #$ %&houghtransform/Mainjava/lang/ObjectsetTitle(Ljava/lang/String;)V setVisible(Z)VsetDefaultCloseOperation(I)V!   3*    ]YL+++ "$%&)PK !*8B##!houghtransform/MainWindow$1.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$1;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$1java/lang/Object!java/beans/PropertyChangeListenerhoughtransform/MainWindowinitComponents()V access$000>(Lhoughtransform/MainWindow;Ljava/beans/PropertyChangeEvent;)V0  4 *+*    A *+     PK !*8Mv"houghtransform/MainWindow$10.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$10;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$10java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$900:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* a   A *+ cd    PK !*8}}_"houghtransform/MainWindow$11.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$11;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$11java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1000:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* j   A *+ lm    PK !*8p"houghtransform/MainWindow$12.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$12;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$12java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1100:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* v   A *+ xy    PK !*8ok"houghtransform/MainWindow$13.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$13;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$13java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1200:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*81"houghtransform/MainWindow$14.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$14;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$14java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1300:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8q"houghtransform/MainWindow$15.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$15;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$15java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1400:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8'0"houghtransform/MainWindow$16.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$16;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$16java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1500:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8QL"houghtransform/MainWindow$17.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$17;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$17java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1600:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8:*#"houghtransform/MainWindow$18.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$18;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$18java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1700:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8;"houghtransform/MainWindow$19.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$19;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$19java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1800:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*85A##!houghtransform/MainWindow$2.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$2;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$2java/lang/Object!java/beans/PropertyChangeListenerhoughtransform/MainWindowinitComponents()V access$100>(Lhoughtransform/MainWindow;Ljava/beans/PropertyChangeEvent;)V0  4 *+*    A *+     PK !*8`["houghtransform/MainWindow$20.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$20;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$20java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$1900:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8WU"houghtransform/MainWindow$21.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$21;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$21java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$2000:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK i6ޥ"houghtransform/MainWindow$22.class2A $ % &' &() * "+ ,-./0this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$22;propertyChange#(Ljava/beans/PropertyChangeEvent;)VprogressIevt Ljava/beans/PropertyChangeEvent; StackMapTable SourceFileMainWindow.javaEnclosingMethod1 23  45 67 89java/lang/Integer :; <=> ?@houghtransform/MainWindow$22java/lang/Object!java/beans/PropertyChangeListenerhoughtransform/MainWindowjButton1ActionPerformed(Ljava/awt/event/ActionEvent;)V()Vjava/beans/PropertyChangeEventgetPropertyName()Ljava/lang/String; getNewValue()Ljava/lang/Object;intValue()I access$16007(Lhoughtransform/MainWindow;)Ljavax/swing/JProgressBar;javax/swing/JProgressBarsetValue(I)V0   4 *+*  s ++=*       !"#  PK i6D[$D"houghtransform/MainWindow$23.class2A $ % &' &() * "+ ,-./0this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$23;propertyChange#(Ljava/beans/PropertyChangeEvent;)VprogressIevt Ljava/beans/PropertyChangeEvent; StackMapTable SourceFileMainWindow.javaEnclosingMethod1 23  45 67 89java/lang/Integer :; <=> ?@houghtransform/MainWindow$23java/lang/Object!java/beans/PropertyChangeListenerhoughtransform/MainWindowjMenuItem4ActionPerformed(Ljava/awt/event/ActionEvent;)V()Vjava/beans/PropertyChangeEventgetPropertyName()Ljava/lang/String; getNewValue()Ljava/lang/Object;intValue()I access$16007(Lhoughtransform/MainWindow;)Ljavax/swing/JProgressBar;javax/swing/JProgressBarsetValue(I)V0   4 *+*-  s ++=* / 013     !"#  PK i6f"houghtransform/MainWindow$24.class2A $ % &' &() * "+ ,-./0this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$24;propertyChange#(Ljava/beans/PropertyChangeEvent;)VprogressIevt Ljava/beans/PropertyChangeEvent; StackMapTable SourceFileMainWindow.javaEnclosingMethod1 23  45 67 89java/lang/Integer :; <=> ?@houghtransform/MainWindow$24java/lang/Object!java/beans/PropertyChangeListenerhoughtransform/MainWindowjMenuItem1ActionPerformed(Ljava/awt/event/ActionEvent;)V()Vjava/beans/PropertyChangeEventgetPropertyName()Ljava/lang/String; getNewValue()Ljava/lang/Object;intValue()I access$16007(Lhoughtransform/MainWindow;)Ljavax/swing/JProgressBar;javax/swing/JProgressBarsetValue(I)V0   4 *+*F  s ++=* H IJL     !"#  PK !*8D!houghtransform/MainWindow$3.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$3;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$3java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$200:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8 !houghtransform/MainWindow$4.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$4;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$4java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$300:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8!houghtransform/MainWindow$5.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$5; stateChanged"(Ljavax/swing/event/ChangeEvent;)VevtLjavax/swing/event/ChangeEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$5java/lang/Object javax/swing/event/ChangeListenerhoughtransform/MainWindowinitComponents()V access$400=(Lhoughtransform/MainWindow;Ljavax/swing/event/ChangeEvent;)V0  4 *+*    A *+      PK !*8%!houghtransform/MainWindow$6.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$6;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$6java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$500:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+*    A *+     PK !*8r!houghtransform/MainWindow$7.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$7;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$7java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$600:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* @   A *+ BC    PK !*8 !houghtransform/MainWindow$8.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$8;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$8java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$700:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* J   A *+ LM    PK !*8!houghtransform/MainWindow$9.class2&    this$0Lhoughtransform/MainWindow;(Lhoughtransform/MainWindow;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLhoughtransform/MainWindow$9;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFileMainWindow.javaEnclosingMethod! "#  # $%houghtransform/MainWindow$9java/lang/Objectjava/awt/event/ActionListenerhoughtransform/MainWindowinitComponents()V access$800:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V0  4 *+* W   A *+ YZ    PK !*81f$houghtransform/MainWindow$Task.class2 +r ,s +t +u +v wx yz {| }~ + s y  { y z + } + } y } y } } } + { +loadI ConstantValuesavesobelnfilter houghlines houghtemplate imagelinessobelallellipse buffimgLjava/awt/image/BufferedImage;opjjffLjavax/swing/JInternalFrame;fileLjava/io/File;this$0Lhoughtransform/MainWindow;Y(Lhoughtransform/MainWindow;ILjava/awt/image/BufferedImage;Ljavax/swing/JInternalFrame;)VCodeLineNumberTableLocalVariableTablethisTask InnerClasses Lhoughtransform/MainWindow$Task;imgjifdoInBackground()Ljava/lang/Void;newframesavingLhoughtransform/ImageFrame;iiiimgappjiappifapp StackMapTabledone()VgetFilteredImage ()Ljava/awt/image/BufferedImage;setFilteredImage!(Ljava/awt/image/BufferedImage;)VgetFile()Ljava/io/File;setFile(Ljava/io/File;)V()Ljava/lang/Object; Exceptions SourceFileMainWindow.java HI Jd DE AB C.    houghtransform/ImageFrame efjava/lang/StringBuilder  overlay lines J   hough space ij  FG f 1 d h d Ellipse finder  UVhoughtransform/MainWindow$Taskjavax/swing/SwingWorkerjava/awt/image/BufferedImagejavax/swing/JInternalFramejava/lang/Exceptionjava/awt/CursorgetPredefinedCursor(I)Ljava/awt/Cursor; setCursor(Ljava/awt/Cursor;)Vhoughtransform/MainWindow access$2100=(Lhoughtransform/MainWindow;)Lhoughtransform/ImageOperations;houghtransform/ImageOperationsgetLines?(Ljava/awt/image/BufferedImage;Z)Ljava/awt/image/BufferedImage;getTitle()Ljava/lang/String;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString3(Ljava/awt/image/BufferedImage;Ljava/lang/String;)V access$22007(Lhoughtransform/MainWindow;)Ljavax/swing/JDesktopPane;javax/swing/JDesktopPaneadd*(Ljava/awt/Component;)Ljava/awt/Component; setVisible(Z)V loadImage.(Ljava/io/File;)Ljava/awt/image/BufferedImage; java/io/FilegetNamegetIFrameImage/(Ljava/io/File;Ljava/awt/image/BufferedImage;)VdoDefaultCloseActionconvolve>(Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;setIFrameImagerepaintgetShapeByTemplategetEdge getEllipse setProgress(I)V access$23007(Lhoughtransform/MainWindow;)Ljavax/swing/JProgressBar;javax/swing/JProgressBarsetValue +,-./01./23./45./67./89./:;./<=./>?./@ABC.DEFGHIJKLr*+***-*M_ `abcN*ORC.SBTEUVLiLMN*W /X2*** L*+ Y* Y *M*,W,L*** L*+ Y* Y *M*,W,Lr* Y***:*W*+* :***:***L* :+ *!L***L* :+ "L***#L*+Lv***$L* N-+ *!LC***%L*+ Y* &M*,W,L*d'M Bghik<nGoWp\qrstuxyz{|}~+169BU\_bm|!,;@NZ_agNRCWEBXYZY[YiORg\Be]Ec^Y_ <`abZZF(42#2?cdLv.** **'*()M"-N .OR_efL/*MN ORghL>*+M NORABijL/*MN ORklL>*+M NORFGAUmL/**MJN ORnopqQ +{PPK !*8­+]+]houghtransform/MainWindow.class2 Z Z Z Z Z Z Z Z Z Z Z Z Z! Z" Z# Z$ Z% Z& Z' Z( Z) Z* Z+ Z, [- ./ Z0 12 13 456 78 .9 1: 1; 1< Z= Z>? F@ ZA ZB ZC ZDE ZF ZG ZH ZI ZJ ZK .L .M NOP 7Q NR ZS NT UV WX ZY UZ Z[\ A-] C- Z^_ F-` H- Za Zbc L- Zd Ze Zf Zg Zh Zij T- Zk Zl Zm Zno Z-p \- Zq Zr Zst a- Zuv d- Zwx g- Zy Zz Z{| l- Z} Z~ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z  Z  A  A C   C C C C C F  H@  H C  A L@                T T T  T       - \  H   \  d d@ g g g@  g d   d  a      d      g      Z Z   Z TB  A Z Z Z C . 4 0! 0"# C$=S .% Z&>?' =-( ?- =) =*+ 4, C =- =. =/ 00 Z1 C F2 34 35 =6 78 C9:; <= C> 4? 4@ CA g9BCTask InnerClassesmi Lhoughtransform/ImageOperations;frames[Ljavax/swing/JInternalFrame;imopstartvalI authorIFrameLjavax/swing/JInternalFrame;cleanupImageButtonLjavax/swing/JButton; closeallItemLjavax/swing/JMenuItem;configHoughFrame findTemplatefindTemplateItemhoughSpaceImageItemjButton1jButton2jButton3 jDesktopPane1Ljavax/swing/JDesktopPane;jInternalFrame1jLabel1Ljavax/swing/JLabel;jLabel2jLabel3jLabel4jLabel5jMenu1Ljavax/swing/JMenu;jMenu2jMenu3jMenu4jMenu5jMenu6jMenu7 jMenuBar1Ljavax/swing/JMenuBar; jMenuItem1 jMenuItem2 jMenuItem3 jMenuItem4 jMenuItem5 jMenuItem6 jMenuItem7 jSeparator1Ljavax/swing/JSeparator; jSeparator2ker_11Ljavax/swing/JTextField;ker_12ker_13ker_21ker_22ker_23ker_31ker_32ker_33 linesOnImage progressBarLjavax/swing/JProgressBar; sobelItemtemplateAddItem toolPanelLjavax/swing/JPanel;tresholdDisplayLabeltresholdSliderLjavax/swing/JSlider;undoItem()VCodeLineNumberTableLocalVariableTablethisLhoughtransform/MainWindow;rtLhoughtransform/RTable;dLjava/awt/Dimension;pypxinitComponentsauthorIFrameLayoutLjavax/swing/GroupLayout;configHoughFrameLayoutlayouttresholdSliderStateChanged"(Ljavax/swing/event/ChangeEvent;)VevtLjavax/swing/event/ChangeEvent;valLjava/lang/String;jButton3ActionPerformed(Ljava/awt/event/ActionEvent;)VLjava/awt/event/ActionEvent;iffLhoughtransform/ImageFrame; StackMapTable#findTemplateActionPerformedtreshvalFtask Lhoughtransform/MainWindow$Task;closeallItemActionPerformedi!cleanupImageButtonActionPerformedsobKer[FsobelItemActionPerformedjButton2ActionPerformedjMenuItem7ActionPerformedfindTemplateItemActionPerformed"houghSpaceImageItemActionPerformedlinesOnImageActionPerformedjDesktopPane1PropertyChange#(Ljava/beans/PropertyChangeEvent;)V Ljava/beans/PropertyChangeEvent;jMenuItem6ActionPerformedjfcLjavax/swing/JFileChooser;nfileLjava/io/File; returnDialog'+formPropertyChangejMenuItem3ActionPerformedundoItemActionPerformedjMenuItem5ActionPerformedjButton1ActionPerformedkerjMenuItem4ActionPerformedjMenuItem1ActionPerformedfilejMenuItem2ActionPerformedgetSelectedFrame:([Ljavax/swing/JInternalFrame;)Lhoughtransform/ImageFrame;tempfrs checkImage(Lhoughtransform/ImageFrame;)I imageFrameundo ([Ljavax/swing/JInternalFrame;)Vfrss setUndoItem access$000>(Lhoughtransform/MainWindow;Ljava/beans/PropertyChangeEvent;)Vx0x1 access$100 access$200:(Lhoughtransform/MainWindow;Ljava/awt/event/ActionEvent;)V access$300 access$400=(Lhoughtransform/MainWindow;Ljavax/swing/event/ChangeEvent;)V access$500 access$600 access$700 access$800 access$900 access$1000 access$1100 access$1200 access$1300 access$1400 access$1500 access$1600 access$1700 access$1800 access$1900 access$2000 access$2100=(Lhoughtransform/MainWindow;)Lhoughtransform/ImageOperations; access$22007(Lhoughtransform/MainWindow;)Ljavax/swing/JDesktopPane; access$23007(Lhoughtransform/MainWindow;)Ljavax/swing/JProgressBar; SourceFileMainWindow.java  rs b_                      D EF cdG EH IJK LM"/houghtransform/shape/template.jpgN OP QR ST U V  1 WX    -8     YJ Z[ \] ^_` ab/houghtransform/icons/main.png cd ef gh ijk ldm no pj qd rsjavax/swing/JDesktopPanejavax/swing/JInternalFrame tfjavax/swing/JTextFieldjavax/swing/JButton oh efjavax/swing/JLabel uv wv xv ph kf yvjavax/swing/JSlider  lh v zvjavax/swing/JProgressBarjavax/swing/JPanel  gh qhjavax/swing/JMenuBar javax/swing/JMenu {|javax/swing/JMenuItem j j ijjavax/swing/JSeparator  j }| j | j j j j  | | nj j | j mj ~| j tJhoughtransform/MainWindow$1 u vwjava/awt/Color x yzhoughtransform/MainWindow$2 {|java/awt/FlowLayout} ~ [ [ New kernel X J Applyhoughtransform/MainWindow$3    About the author.This software is for an university exams only.Author: Vasco Gallotti Mat: 162776Closehoughtransform/MainWindow$4javax/swing/GroupLayout              (Generalized Hough transorm configurationTreshold [ [ Xhoughtransform/MainWindow$5  Find templatehoughtransform/MainWindow$60.5Treshold actual value     (org/netbeans/lib/awtextra/AbsoluteLayoutjavax/swing/ImageIcon*/houghtransform/icons/stock_brightness.png  Blurhoughtransform/MainWindow$7-org/netbeans/lib/awtextra/AbsoluteConstraints 7/houghtransform/icons/preferences-desktop-wallpaper.png Hogh Panelhoughtransform/MainWindow$8File'/houghtransform/icons/document-open.pngOpen...houghtransform/MainWindow$9 '/houghtransform/icons/document-save.pngSave...houghtransform/MainWindow$10Close All Frameshoughtransform/MainWindow$11$/houghtransform/icons/stock_exit.pngExit...houghtransform/MainWindow$12 Edit(/houghtransform/icons/stock_undelete.pngUndohoughtransform/MainWindow$13Filter)/houghtransform/icons/stock_quickmask.pngEdgehoughtransform/MainWindow$14-/houghtransform/icons/stock_draw-arc_vert.pngVertical Sobelhoughtransform/MainWindow$15(/houghtransform/icons/stock_draw-arc.pngHorizontal Sobelhoughtransform/MainWindow$16,/houghtransform/icons/stock_display-grid.pngNewhoughtransform/MainWindow$17-/houghtransform/icons/stock_filters-aging.pngHough Tranform)/houghtransform/icons/stock_draw-line.pngLines^C:\Users\vasco\Desktop\Elaborazione Immagini\Progetto\HoughTransform\icon\lines_hough_icon.gif XHough Space Imagehoughtransform/MainWindow$18XC:\Users\vasco\Desktop\Elaborazione Immagini\Progetto\HoughTransform\icon\lines_icon.gif Image overlayhoughtransform/MainWindow$193/houghtransform/icons/stock_draw-polygon-filled.pngGeneralized Hough Add Template [ Find Templatehoughtransform/MainWindow$20Help*/houghtransform/icons/stock_help-agent.pnghoughtransform/MainWindow$21        `a   [ houghtransform/MainWindow$Task   houghtransform/ImageFrame   javax/swing/JFileChooserhoughtransform/ImageFilter  [ java/io/File           J No image loadedError    T houghtransform/MainWindowjavax/swing/JFramehoughtransform/ImageOperations getInstance"()Lhoughtransform/ImageOperations;houghtransform/RTable()Lhoughtransform/RTable;setTableresolution(I)Vjava/lang/ObjectgetClass()Ljava/lang/Class;java/lang/ClassgetResourceAsStream)(Ljava/lang/String;)Ljava/io/InputStream; loadImage5(Ljava/io/InputStream;)Ljava/awt/image/BufferedImage; setModelShape!(Ljava/awt/image/BufferedImage;)V initTable fillRTablesetText(Ljava/lang/String;)VsetValuesetStringPainted(Z)VsetBar(Ljavax/swing/JProgressBar;)VsetJde(Ljavax/swing/JDesktopPane;)Vjava/awt/ToolkitgetDefaultToolkit()Ljava/awt/Toolkit; getResource"(Ljava/lang/String;)Ljava/net/URL;getImage (Ljava/net/URL;)Ljava/awt/Image; setIconImage(Ljava/awt/Image;)V getScreenSize()Ljava/awt/Dimension;java/awt/Dimensionheightjava/lang/Mathround(F)IgetSizewidth setLocation(II)VsetDefaultCloseOperation(Lhoughtransform/MainWindow;)VaddPropertyChangeListener&(Ljava/beans/PropertyChangeListener;)V(III)V setBackground(Ljava/awt/Color;)VgetContentPane()Ljava/awt/Container;java/awt/Container setLayout(Ljava/awt/LayoutManager;)V setClosable setResizablesetTitle setColumnsadd*(Ljava/awt/Component;)Ljava/awt/Component;addActionListener"(Ljava/awt/event/ActionListener;)V setBounds(IIII)Vjavax/swing/JLayeredPane DEFAULT_LAYERLjava/lang/Integer;)(Ljava/awt/Component;Ljava/lang/Object;)V(Ljava/awt/Container;)V!javax/swing/GroupLayout$Alignment AlignmentLEADING#Ljavax/swing/GroupLayout$Alignment;createParallelGroup ParallelGroupL(Ljavax/swing/GroupLayout$Alignment;)Ljavax/swing/GroupLayout$ParallelGroup;createSequentialGroupSequentialGroup+()Ljavax/swing/GroupLayout$SequentialGroup;'javax/swing/GroupLayout$SequentialGroupaddGap.(III)Ljavax/swing/GroupLayout$SequentialGroup; addComponent?(Ljava/awt/Component;)Ljavax/swing/GroupLayout$SequentialGroup;%javax/swing/GroupLayout$ParallelGroupaddGroupGroupH(Ljavax/swing/GroupLayout$Group;)Ljavax/swing/GroupLayout$ParallelGroup;addContainerGapJ(Ljavax/swing/GroupLayout$Group;)Ljavax/swing/GroupLayout$SequentialGroup;-(II)Ljavax/swing/GroupLayout$SequentialGroup;setHorizontalGroup"(Ljavax/swing/GroupLayout$Group;)V*javax/swing/LayoutStyle$ComponentPlacementComponentPlacementRELATED,Ljavax/swing/LayoutStyle$ComponentPlacement;addPreferredGapW(Ljavax/swing/LayoutStyle$ComponentPlacement;)Ljavax/swing/GroupLayout$SequentialGroup;setVerticalGroupsetPaintLabels setPaintTickssetToolTipTextaddChangeListener%(Ljavax/swing/event/ChangeListener;)V@(Ljava/awt/Component;III)Ljavax/swing/GroupLayout$ParallelGroup;Y(Ljavax/swing/LayoutStyle$ComponentPlacement;II)Ljavax/swing/GroupLayout$SequentialGroup;=(Ljava/awt/Component;)Ljavax/swing/GroupLayout$ParallelGroup;BASELINEB(Ljava/awt/Component;III)Ljavax/swing/GroupLayout$SequentialGroup;(Ljava/net/URL;)VsetIcon(Ljavax/swing/Icon;)V0(Ljavax/swing/JMenuItem;)Ljavax/swing/JMenuItem;((Ljavax/swing/JMenu;)Ljavax/swing/JMenu; setEnabled setJMenuBar(Ljavax/swing/JMenuBar;)VTRAILINGk(Ljavax/swing/GroupLayout$Alignment;Ljavax/swing/GroupLayout$Group;)Ljavax/swing/GroupLayout$ParallelGroup;packgetValue()Ijava/lang/StringvalueOf(F)Ljava/lang/String; getAllFrames()[Ljavax/swing/JInternalFrame; setVisible setTreshold(F)VgetIFrameImage ()Ljava/awt/image/BufferedImage;Y(Lhoughtransform/MainWindow;ILjava/awt/image/BufferedImage;Ljavax/swing/JInternalFrame;)Vexecutedispose setKernel([F)VaddChoosableFileFilter'(Ljavax/swing/filechooser/FileFilter;)VsetAcceptAllFileFilterUsedgetTitle()Ljava/lang/String;setSelectedFile(Ljava/io/File;)VshowSaveDialog(Ljava/awt/Component;)IgetSelectedFile()Ljava/io/File;setFilegetTextjava/lang/Float%(Ljava/lang/String;)Ljava/lang/Float; floatValue()FshowOpenDialogjava/lang/Systemexit isEnabled()Zjavax/swing/JOptionPaneshowMessageDialog<(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;I)V isSelected getBackupsetIFrameImagerepaintjavax/swing/GroupLayout$Groupjavax/swing/LayoutStyle!Z[7^_`ab_cdefghijkflhmjnjohphqhrstfuvwvxvyvzv{|}|~|||||jjjjjjjjjjvj3***2LM,ض,+* !",#,$*%*&'(*)'(**'(*+'(*,-(*.'(*/'(*0'(*1'(*2*3+*4+*5*6*789:6;N-<l=*><l=d6-?l=*>?l=d6*@v0+ -234 516579:=;F<O=X>a?j@sA|BCEFGHJMNOQT>b_=#d d *AYB*CYDE*FYG&*FYG)*FYG**FYG+*FYG,*FYG.*FYG/*FYG0*FYG1*HYIJ*CYDK*LYMN*LYMO*LYMP*HYIQ*CYDR*LYMS*TYUV*HYIW*LYMX*LYMY*ZY[*\Y]^*HYI_*HYI`*aYbc*dYef*gYhi*gYhj*gYhk*lYmn*gYho*dYep*gYhq*dYer*gYhs*gYht*gYhu*gYhv*lYmw*dYex*dYey*gYhz*gYh{*dYe|*gYh}*gYh~*dYe*gYh**Y**Y̷*Y**EY*EY*E*E*E*E*&*E*&W*)*E*)W***E**W*+*E*+W*,*E*,W*.*E*.W*/*E*/W*0*E*0W*1*E*1W*J*JY**E*JW*EF**E*K*K*K*N*O*P*Q*QY*Y*KL*K++++++*N+*O+*P+xxx*Q%+++   *N*O*P*Q'''*K2T**K*R*R*R*S*V*V*V*VY**W*WY**X¶*YöY*RM*R,,,,,*V,*S!*Y*X*Wƶ,,,,Ƕ*S*X*Yƶ*VȲ*W...*R(**R*^Yʶ*_Y*Ͷ8ζ*_ж*_Y*Ҷ*^*_YԶ*`Y*ֶ8ζ*`׶*`Y*ٶ*^*`YZԶ*fY*f۶*iY*iY*޶8ζ*i*iY**f*iW*jY*8ζ*j*jY**f*jW*k*kY**f*kW*f*nW*oY*8ζ*o*oY**f*oW*c*fW*pY*p*qY*8ζ*q*qY**p*qW*r*sY*8ζ*s*sY**r*sW*tY*8ζ*t*tY**r*tW*uY*8ζ*u*uY**r*uW*vY*8ζ*v*vY**r*vW*p*rW*p*wW*xY* 8ζ *x *yY* 8ζ *y *zY*z*zY**y*zW*{Y*{*{Y**y*{W*x*yW*|Y*8ζ *|*}*}*|*}W*~Y*~*~Y**|*~W*x*|W*p*xW*c*pW*Y**Y*8ζ** Y*!**W*c*W**c"Y*#N*#---***^Ķ--$-*^$Ȳ* Ȳ*ȶ%*&F] ^_!`,a7bBcMdXecfngyhijklmnopqrstuvw)x4y?zJ{U|`}k~v&16BYh~)1@HW_nv '2  (1:BJS bkz +j9|:<>?@FHIJ P'R>SGT^UuV~W]_`agijprtu$v3|?~Kbk    % = G V b z            % 1 B L [ g s             $ . F O ^ j v ~      * 'z _*V'(n)M*X,  &***+**+,M*,-*R. % &&I***+**+,M*,-*V'(nF*%/0Y*,1,2:3"  *!2"C$H%4II5*C2***+=*+*+24 *+25߱( )*"++)1.  $d22  }***+**+,M*,- Y6QY6QY6QY6QY6QY6QY6QY6QY6QN*-7*80Y*,1,2:3& 1 234[9c:g;w<|=4}}i["w2***+**+,M*,-0Y*,1,2N-3@ ACE-F1G*22-A *K. JK  w***+**+,M*,- Y9QY:QY9QY QY QY QY;QYN-?Y@A-BCY,DE:-F-*G6!0Y*,1,2:-HI3: %05BHOTdmrHdss_%NB1O$dT5A *K.   T**M*,J  `aM*E.*EKc*E.***+**+,M*,- Y*&LMNQY*)LMNQY**LMNQY*+LMNQY*,LMNQY*.LMNQY*/LMNQY*0LMNQY*1LMNQN*8*-70Y*,1,2:3* %4"%w***+**+,M*,- Y;QY QY9QYM,?Y@A,B,*O>",H:0Y*2:I3* "(5<A>(5 BB:$d A=P +=+$+2Q+24 +24N-!#)*!'d++a  _+*RST4=+.+2U+24~+24N--VW+2Xұ'-3 *1d44a *N*qY *q  :*+':*+':*+':*+':*+':*+':*+':*+':*+':*+':*+':*+ ':*+ ':*+ ':*+ ':*+ ':*+' :*+' :*+' :*+' :*+' /*' /*' /*' ]0Z\ @@PK k6^--houghtransform/RBpair.class1!    rIbetaF()VCodeLineNumberTableLocalVariableTablethisLhoughtransform/RBpair;(IF)VgetR()IsetR(I)VgetBeta()FsetBeta(F)V SourceFile RBpair.java   houghtransform/RBpairjava/lang/Object!   E***      k*** **$     /*   >* "# /* &  >*# *+ PK 6h}}houghtransform/RTable.class29 J   C4        ! !  ! !  , , ! / / 4 4 !  / 4 /instanceLhoughtransform/RTable;tableresolutionI tableindex[ForigpixsLjava/awt/image/BufferedImage; sobelvert sobelhorirtableLjava/util/HashMap; minmodule()VCodeLineNumberTableLocalVariableTablethis getInstance()Lhoughtransform/RTable; StackMapTablegetTableresolution()IsetTableresolution(I)V initTableihalfpiFkstep setModelShape!(Ljava/awt/image/BufferedImage;)Vorig printRTablerbpLhoughtransform/RBpair;entryEntry InnerClassesLjava/util/Map$Entry;keyLjava/lang/Object; pairsvaluesLjava/util/LinkedList;entriesLjava/util/Set;iterLjava/util/Iterator; fillRTablel1l2rbetaradDbetagradientalpharedgreenblueyx shapewidth shapeheightxrefyrefpixels[Ihpixvpix addToRTable(FIF)V listofvalapxkeygetPairsValuesByGradient(F)Ljava/util/LinkedList; gradientkeykkgetRoundedKeyGradient(F)F keygradienttoret getMinmodule SourceFile RTable.java XY MN OP QR SR TR UV WN KLhoughtransform/RTablejava/util/HashMap Xd  ^ P   P  java/io/Filehori.jpg X vert.jpg edged.jpg       java/lang/StringBuilderSize:  b  ==    java/util/Map$Entry  java/util/LinkedList-----   houghtransform/RBpair[ !b - "# $]+-------------------------------------------% &' (' )*+ ,- ./ 01 2/ 34 5 X6 78java/lang/Object java/util/Setjava/util/Iteratorjava/lang/FloatvalueOf(F)Ljava/lang/Float;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;houghtransform/ImageOperations"()Lhoughtransform/ImageOperations;sobelkernelvertical setKernel([F)Vconvolve>(Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;sobelkernelhorizontalgetEdge(Ljava/lang/String;)Vsave/(Ljava/io/File;Ljava/awt/image/BufferedImage;)VentrySet()Ljava/util/Set;iterator()Ljava/util/Iterator;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;size(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintlnhasNext()Znext()Ljava/lang/Object; java/util/MapgetKeygetValue-(Ljava/lang/Object;)Ljava/lang/StringBuilder;get(I)Ljava/lang/Object;getRgetBeta()F(F)Ljava/lang/StringBuilder;java/awt/image/BufferedImagegetWidth!(Ljava/awt/image/ImageObserver;)I getHeightgetImagePixels$(Ljava/awt/image/BufferedImage;II)[Ijava/lang/Mathabs(I)Isqrt(D)Datan2(DD)D toDegreesgetGradientOrientation (III[I[I)D&(Ljava/lang/Object;)Ljava/lang/Object;(IF)Vadd(Ljava/lang/Object;)Z! J KLMNOPQRSRTRUVWN XYZs)******** [& '  !""#((\ )]L ^_Z= Y [+,.`abZ/*[2\ ]LcdZ>*[ 67\]LMNeYZc D#*nE**`>**$jQ*Y*>***0W[. :; <>!?+>1A@CJD\CbG\4fNB fNc]L`gh Xih`jkZm*+*+*+Y*Y*Y*[& K MOQ(R3TFUYVlY\m]LmlRmYZ*L+M !Y"#$*%&'$*&(),*,+,N--:-./:x !Y"0$10$()62D34: !Y"5$6&7$89:$() ;)`[B\]^:`CaMbUc`eefghigkno\R/noKfNMpsUtu`zvw]Lxyz{`,:|}L~|}JYZ"*<<*==l>l6*>:*>:*>:66   h`.z~6  h`.z~6  h`.z~6  h`.~6    fd?6 d?6hh`@6A9B8 C8* * *D 9*[fr stuw)x7yE{N|W}j~} |{!\ZNPN>N3+hhjN }N N uN QN HN"]L NN NN)7E`}H ~`~X~ ~Zd 8*#E8*F-/YG:4Y%HIW*W#*F/:4Y%HIW[*  "1@CTc\H"wTwd]LdthdNdhah`CZW*#EE*$F/[ \ ]LhhZ. E>*` #*0*d0E $[#&,\*(fN.]L.h,h` !bZ/* [\ ]Lr ,q PK k6Ȋkhoughtransform/Utils.class1= ( )* +, +- +. +/01jpegLjava/lang/String; ConstantValue jpg giftifftifpng()VCodeLineNumberTableLocalVariableTablethisLhoughtransform/Utils; getExtension"(Ljava/io/File;)Ljava/lang/String;fLjava/io/File;extsiI SourceFile Utils.java 2 345 67 89 :; <4houghtransform/Utilsjava/lang/Object java/io/FilegetName()Ljava/lang/String;java/lang/String lastIndexOf(I)Ilength()I substring(I)Ljava/lang/String; toLowerCase!             /*  )L*M,.>,d,`L+ "#'%*) !'" "# $%&'PK x6Dr11houghtransform/garbageint[][] houghlines = new int[hw][2 * hh]; for(int i=0; i high){ high = houghaccumulator[i][j]; temp_i = i; temp_j = j; } } } float par_treshold = 1.3f; treshold = (int) par_treshold * high; boolean draw = false; int k,l; int dt, dr; for( int i=0; i< hw; i++){ for( int j=0; j<2*hh ; j++ ){ if(houghaccumulator[i][j] >= treshold){ draw = true; int peakpoint = houghaccumulator[i][j]; for(k = -1; k < 2; k++){ for(l = -1; l < 2; l++){ if(k == 0 && l == 0) continue; dt = i+k; dr = j+l; if(dr < 0 || dr >= 2*hh) continue; if(dt < 0) dt = dt + hw; if(dt >= hw) dt = dt - hw; if(houghaccumulator[dt][dr] > peakpoint){ draw = false; break; } } } if(!draw) continue; double tsin = Math.sin(i * thetastep); double tcos = Math.cos(i * thetastep); if(i <= hw/4 || i >= (3 * hw)/4 ){ for(int y = 0; y= 0){ houghlines[x][height-y-1] = 255; } } }else{ for(int x=0; x= 0){ houghlines[x][height-y-1] = 255; } } } } } } -------------------------------------------------------------------------------------------- Toolkit t = java.awt.Toolkit.getDefaultToolkit(); Dimension d = t.getScreenSize(); if(d.getHeight() < mi.getImage().getHeight() || d.getWidth() < mi.getImage().getWidth() ){ //rescale image float fh = (float)d.getHeight() / (float)mi.getImage().getHeight(null); RescaleOp resop = new RescaleOp(fh,1f,null); BufferedImage rescaledImage = resop.filter(mi.getImage(), null); Graphics2D g2 = rescaledImage.createGraphics(); g2.drawImage(rescaledImage, null, null); }else{ ImageInput ii = temp.getImageWork(); ii.setKernel(ker); ii.convolve(); frames[i].repaint(); progress += random.nextInt(10); setProgress(Math.min(progress, 100)); BufferedImage toret = imop.houghLines(this.buffimg); setProgress(100); this.buffimg = toret; JInternalFrame jif = new ImageFrame(this.getFilteredImage(), "houghlines"); jDesktopPane1.add(jif); jif.setVisible(true); _------------------------------------------------------------------------------------ public BufferedImage houghLines(BufferedImage image){ int height = image.getHeight(null); int width = image.getWidth(null); int[] pixels = getImagePixels(image, image.getWidth(null), image.getHeight(null)); int[] houghimagepixels; int[][] houghaccumulator; int center_x = width / 2; int center_y = height / 2; int tmp; int hh; int hw; tmp = Math.max(height, width); hh = (int) (Math.sqrt(2)*tmp); hw = tmp; double thetastep = Math.PI / hw; //System.out.println(pixels.length); //System.out.println("Larghezza: " + width + " 2xhh: " + height); /* *Variables useful for line detect from hough accumulator */ int high; float treshold; int tresh; /** *Get image pixels */ houghaccumulator = new int[hw][2 * hh]; for( int i=0; i < hw; i++){ for( int j=0; j < 2*hh ; j++ ){ houghaccumulator[i][j] = 0; } } for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { /** *in i c' sta la coordinata delle x *in j ci sta la coordinata delle y *in pixels[j*width+i] ci sta il colore del pixel */ int alpha = (pixels[j * width + i] >> 24) & 0xff; int red = (pixels[j * width + i] >> 16) & 0xff; int green = (pixels[j * width + i] >> 8) & 0xff; int blue = (pixels[j * width + i] ) & 0xff; if(red==0 & blue==0 & green == 0){ //Background found }else{ /** *Devo calcolarmi i parametri r e theta da 0 a 2pigreco *che sono tendenzialmente infiniti, allora ho introdotto la variabile *houghintense con la quale determino il numero di step da fare */ for(int k=0; k 2*hh) continue; houghaccumulator[k][tmp]++; } } } } /** * Detect if there are maximum point in the hough accumulator * */ int[][] houghlines = new int[width][height]; for(int i=0; i high){ high = houghaccumulator[i][j]; } } } System.out.println("punto massimo: "+ high); //tresh = (int) (treshold*high); tresh = 180; boolean draw = false; for( int i=0; i< hw; i++){ for( int j=0; j<2*hh ; j++ ){ //only points above treshold if(houghaccumulator[i][j] >= tresh){ draw = true; int peak = houghaccumulator[i][j]; //search around maximum point for(int k=-1; k<2; k++){ for(int l=-1; l<2; l++){ if(k==0 && l==0) continue; int dtheta = i+k; int drho = j+k; if(drho < 0 && drho > 2*hh) continue; if(dtheta < 0) dtheta += hw; if(dtheta > hw ) dtheta -= hw; if(houghaccumulator[dtheta][drho] > peak){ draw = false; break; } } } if(!draw) continue; double tsin = Math.sin(i*thetastep); double tcos = Math.cos(i*thetastep); if(i <= hw/4 || i >= (3 * hw)/4 ){ for(int y = 0; y= 0){ houghlines[x][height-y-1] = 255; } } }else{ for(int x=0; x= 0){ houghlines[x][height-y-1] = 255; } } } } } } //System.out.println("Valore di massimo nell'accumulatore: " + high +" i : " + temp_i + " j: "+ temp_j ); //now I must create hough image /* BufferedImage houghImage = new BufferedImage(hw, 2*hh, BufferedImage.TYPE_INT_ARGB); WritableRaster raster = houghImage.getRaster(); ColorModel colorModel = houghImage.getColorModel(); for( int i=0; i< hw; i++){ for( int j=0; j<2*hh ; j++ ){ int[] color = {0,houghaccumulator[i][j],houghaccumulator[i][j],houghaccumulator[i][j]}; //{houghaccumulator[i][j],houghaccumulator[i][j],houghaccumulator[i][j]}; raster.setPixel(i,j,color); } }*/ BufferedImage houghImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); WritableRaster raster = houghImage.getRaster(); ColorModel colorModel = houghImage.getColorModel(); for( int i=0; i< width; i++){ for( int j=0; j= 0 && yc >= 0){ houghspace[xc][yc][k] += 1; //System.out.println("Rotation angle: " + ith + " shape scale: " + hsc); //if(houghspace[xc][yc][ith] > high) high = houghspace[xc][yc][ith]; } }PK F*8@R&houghtransform/icons/document-open.pngPNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8K[Q?"2wЭ EqT:qT(- -کS'8'?b5y%yڊ_ss8QUn PT݋{s|>o\.#u:7|ׁ1fku1۟66+O$.K*3jms' ^4IbmyN=2ιXzA(E#BU1z33`5Aa!X_ᠼ+T@H֜Wj arhwj,q#PgM^YL1+UJq,I)GF7/6?bUŧrl//#a~7I=TndpRO O?{37J"=?V-IENDB`PK F*8X&houghtransform/icons/document-save.pngPNG  IHDRabKGD pHYs  tIME 2#MbIDAT8˝=KBaPE  MM☈_  *j% %nz)[Һי9xG@X[/&C עTi_@z4 NX?瘌dNM  5' Bf;Y4+PT:at|>_wW.5 `?x7:: wn]Q4{g>06iFvj-"jH_;zZEi;pu'0i4˲(VXHv3_L@EL$)Jض $ "CU`essmk , cnɃSIENDB`PK (*8 T#houghtransform/icons/edged_icon.gifGIF89a#{jru}-+/<:CIKVw{kpor|/3?MR_$,4Ex~(+1,/5p.7EMl(/ $ '.@R[@DF9iP T! O~Pp{ #Omwu\}Spxa/4S{Cai+:>.>BV^`}  $;@xJOP *-/@C "$36AbgHinZ{ &(-/\de 5ty   (9:E=wyN$<=O[[!_^  22!!G>tt$773KK'99`1CC_||Ndd$$JSSCml?_^Uutmg,+w LXW _W fX )&,)$:7&=:@WT -+gWwriW !!i]($+'TCa\iS(85jS O}s  "1*Rs.iW;2% %!"]G)C9-%/'AKFT^Ys7MAWyf]sg}=,295)9/PbVlt]f`BKD=A=[`[SiPj~g.?+^tZ:H7sm^oWYtKd~Vgp^_qKewQ|sBI8LP>psVi`bPSTC{zoIG8sqbxvjtjO}bpxshf`Tpj^}oh^yb[RwpgvaP{jyhuoidr_Qsetfm]~cMBxbW!,#H*F 59SrǸ4LH 3,*JDTtnGa\ # #(VL,( gN kt->9*"  "   >36- 1<8;SJ  +:3 +              !,#ͅ;:$z" TW^tʙ#YrБ$%bƴU !wGذ9 )Vk)RFe8c~@1"o߼Ѣe&Dn T-Ppr6Rd񓀃 {Z54%EDF(Px7vuZmĩҧIk0[e7o3+,IRg)R(тV8;P8V!lJ-BՇq&N`"sqjϘ= VLjK.qa @s9N8xӍ7b1# -`R+ɘ23 WQ:D8䀃a7D7(C0D8Atd5Y!s|-LtT@!XNB>AM0B t%@ D2Q.J2r0ͺ@:s;0 G2H$xr1%R($H"i1 O>h:, |D)'1x=>Xp@{h)20"p2'sH CԠtwP?TJ !4r,BI 7pG#bI&}( 3I!Iڏ4B - *b -KH`%L/pPC1lPB S%-h!܂,#{A A>p42 0 %etId;4PL"z ^@,! ;PK F*8ҲAA)houghtransform/icons/lines_hough_icon.gifGIF89a  #'%("%!$ #" %'!+-)*()'($% !-.*+22//--,+''##6553.,+)('86 ;96341301.:7>;?<3/0,95 :6=94/61:47283:5A<B> >8 ;5=7?:@8?8?7?7E>B<A8C;D< G? =2!H?C9D: G=#LBH="J?F9!H=#H=$I>$I=#F;(NB(K@F9#J=%K>'K?$J<(N@)M@*NA+MA,NB&J*N?*M?2QD-PA-O@,O?.O@0QB2QC3TD/Q@/P?2RB,N:VG.O=3SA2Q?5UC7VD1Q>-O:4R?9VC2Q<7UA7S@8VA8UA1S;?ZF;XB=ZD;WB=YD;WAZD>WCYKaGF`@IaDIaBOdHDb9OdGKbAMcDLbCK`BPfDNdAQeESdISeFRfBVhGXhJPeB=?F@EKF{UEFH!, H LbU$0@@ B!# 1e 8 L6h& `Di^3,`dܫ c_+M @XL!nM 0hbj{=a B l=yѡAx2p)yCO&n\cAƐ,6L)3SPP`Vf,%1P`|`%L:Mڤɏ&E>H@!Hħ.84(͚8zeK'2@;PK (*8&&#houghtransform/icons/lines_icon.gifGIF89a  1yl7p0:p5r8x>:;x6x7Fu7Jl5ÜPQ3~4Ɩ@”@{8}9•Fy:v:dN(p:s=i8›Rq=o=l>L?'w5{>KD˜Pn:h8™SWE'mB7֝F~>ȖK{>wr=ÕPk>fAϚS˗TI:&~b>{aAٛUhDfDZE.hEcAgEkLђW̍XĄSȋb͇\bQ|h!,HEPBGxHM(* 'XxaG!@D`N9pHH@+RVLLbb" A˛-%L1aMxPA`dnfpBAI@iC(jP$  -B=؀瑣"u0B1]QF-ӢDXFHnjT%pQO HfAA9sR8X. 4@@Ne0k]`)Ë;PK *8>,houghtransform/icons/main.pngPNG  IHDRh6yIDATxEOkTgyνw&3$~;%\Jq`wm#MARMihXE (R0&mdښL2w}<]\Cy69#ßY3KċXgۻoKSo/.\0V Ezι–eYE>8C"_n)wڼ$?En%8;9K.w ΦqwEY͍FDH 9}|z9316u=Zl>x_D'i=Mt#dblR@Ʋ6Ac~{$8=uTRuMuӷniXǻwZաw:giu{VWO򁱥s~pAܹwkտz٢,pև$a#N"毵+sjQTa u<, u47ߡb^ 靃@EQqIVMA@1N[I HwG/ӑ4O.dͬ:"bmu̟ݍ/P {.™޿>@R??91AjFE1Z[- ,@׫P眵{O2 CֺhTN?PIENDB`PK 4*8Znn6houghtransform/icons/preferences-desktop-wallpaper.pngPNG  IHDRĴl;bKGD pHYs B(xtIME PjIDAT8˵hU?y{{wĵy7mLj$P0 6J $DP(MQ4 ؜ZR?r3Me(6~Yyw{N9w7Q8yyN7?H`ƍ]˲[Siulm'fwcܥoH)i{ /ɇ' ]_kA\ץ #zˡ%DPrd_6mAOdīfd3{Xv̌ه1F>td|)DkR/ډS5 8͘@5д2~4%i1g=?| u~\.xc5Zi؁N$6mx~1x0!,;Mb ; <A%%ܳ^ ]=,h|?o8гjd>Νq=0'0,Vxl59'E2@)aJ9n$hۺS9v iJl˶iX!L\baSun`AZsj)*/G9.mM$y ?PEO/Y>%냟øjB˹tBJ )1Ϭr:h'{_=@(gJ;:w[:3Ўd0L3|R0@t^ P|m}^jFq^{e C+fqa29ڷN274ĢG[8sN. i-ΙhRJ$ꥼ ![yp :Y?Tf?#CXm[i@~+Y>@cG"TrIq jjcA#\Z? #ܸret:up% XMUHG .8Y::>];ky]>e@ Hny )|;` 0Mb؞Çv0<>RrS{j&޵ncu7M I1 ""q3!OF$eGaf1 3?}(qh!l"*)K!b=2ssNj""B]׏qnD"&$Ijd2a<3y@Z0m, zYT<0 1 4"qRh4RFRJ^ȶcyӀ^匯 PUu%DEh-O>}{u˓C,!d\Ӌ]?g|ob5'IENDB`PK *8Y ++'houghtransform/icons/stock_draw-arc.pngPNG  IHDRabKGDIDATxc`h.`cp~6 0˙kw݋3RCWfCY5ՂICeR#VMN#0ܕk5uј8`4&6Y3!Hjih]LpIENDB`PK *8L bb,houghtransform/icons/stock_draw-arc_vert.pngPNG  IHDRasRGBbKGD pHYs  tIME 5bIDAT8c`0b4I```Hf``0 f``{~ӔjYh^HG+(.^U|~ӔX1˙8'|ĕن~9qij=Avѕ' r,a|&$x- cll(houghtransform/icons/stock_draw-line.pngPNG  IHDRabKGD!IDATxc` RRG53 jtIENDB`PK *8|2houghtransform/icons/stock_draw-polygon-filled.pngPNG  IHDRabKGDIDATxڝKQ?VLj([A/EڥKlu(trA;uLF -D!)4Fn_ӯ|{\184n 1ԖI>2>}cAU&(J4/ШUH-&pj)W||AUPTUXaX޼(6X_S_ZEUDl56߂|}ޝ;9r8 t]cWۿ_ZE wڼ_}Ӏ@!=^›wYbNߴ**j?)y 0}xh1݁G[ ^o(dӑP=op*";.?t}sBdIENDB`PK 4*8@o#houghtransform/icons/stock_exit.pngPNG  IHDRabKGDIDATxڥOKA&jŞz P-P "BO`S'HAbKkKac5fK%6k x/<o<otq[Bk '|j{g>T&K&PA| 8:gJqԗ^89eja2T& y\^^Nu^&_a1 鳁j%R+{Eq/R$$ uLn378kMtIENDB`PK ,*8>,,houghtransform/icons/stock_filters-aging.pngPNG  IHDRh6yIDATxEOkTgyνw&3$~;%\Jq`wm#MARMihXE (R0&mdښL2w}<]\Cy69#ßY3KċXgۻoKSo/.\0V Ezι–eYE>8C"_n)wڼ$?En%8;9K.w ΦqwEY͍FDH 9}|z9316u=Zl>x_D'i=Mt#dblR@Ʋ6Ac~{$8=uTRuMuӷniXǻwZաw:giu{VWO򁱥s~pAܹwkտz٢,pև$a#N"毵+sjQTa u<, u47ߡb^ 靃@EQqIVMA@1N[I HwG/ӑ4O.dͬ:"bmu̟ݍ/P {.™޿>@R??91AjFE1Z[- ,@׫P眵{O2 CֺhTN?PIENDB`PK *82/houghtransform/icons/stock_filters-solarize.pngPNG  IHDRh6IDATxmjAS]]=鞉"d Q1WnܸƝRpK.BE!Yd{ש)(s|  |ʡ+jFv8ɭ PDƣ$n^j6_:_.,q߿qɣJ`|@49}t"Ή:ج $mete`^Etjv:o4X t]X3dϙٱ[lApATq57Yx: #!@T-j>̼aD8QTU_v*^IENDB`PK *8(&||)houghtransform/icons/stock_help-agent.pngPNG  IHDRaCIDATxՒOHaof4I4LCR52,P!WF:] إKA<Q!sU6sU6wqvf{;tnX7y`ޝ^-MXVPL+(MjazLwo9A+I SdU3 i%ٯ6F }cY氨SV}})(%UXWUz8TAaE%?S9 400:::TSS(XTa}^z7X]8U Ǹ,-/v'XrHnɔ4UG.2\p$EX<hTUl`-kwvQW$21@FߢrTِs45nfP9DAB3SFM哳?bc8sǏ{2Rlf#g{k6PXvQ q;{s‚ V.!,q^M2|g_[ko;O<|D"@\II0cM~]LݼIENDB`PK *8L)(houghtransform/icons/stock_quickmask.pngPNG  IHDRagAMA abKGD pHYs  ~tIME -sIDATxڕSKHau#P.=$"($uPA*" h%.2B"2R^:WzgޙOR,;O6Ԕ: @bwXnJػ,*aLwK\00\;unQ a2TUcO:VM5mks*}1\ÝdSպ2qD3,!:q~3]cx%[Ҹ~2RI <ڂu;# '泧ѼvYk6Fd;q{Ta4mk9:stUJ|>]ТՋ~ZZ"s)-.z ŕ5b0Xρ=?Utݤ} @+ZB\h׌LCW^-)"5Y(@ ħ !Go\I.TΔrrŒbo=;cv,<;:KIW?eHg[kUL'0RE FIƑ44;o)QNg(Hka3BT!&(* ^"ƒN,Ÿ&\<(|s}x8iB2IENDB`PK F*8e#@/houghtransform/icons/stock_symbol-selection.pngPNG  IHDRabKGDIDATxڭ+DaF7;( QV% [`RYXS,!R͌2q,a [<.99H l5K,bn#goM/|K,y`f tŕM.2g2#`xO.(+Z6cSb#P9=y( #yG|o{}SZkq]W2x'Zd`h^bٍ_aIENDB`PK (*8Ѩت(houghtransform/icons/vert_icon copia.gifGIF89a#  (                 $         9:<         ')4<>DLN"#  #%Ihj  GG >LL,55Xdd%**U]]K|y*)&65 +).YUU|yr/:9    i:DCAKJeon*';7'OJ<\XFc_ SsnVF2* W$?:Kun+B>#/-cO&sLBEEJIMڹh'^  (95+/.MQP    #)%            2320/+:95873     !,#k׬[wW9ofE@fym7$>(Pp5nཻN:uߺa㭀\lys娕0a AD8Ŭ? ЙSw/hvWxʑ!.vl۵R88gݺiV7lt9*vKAj&,O0=0뷡4gތ+ -+]aDc 5FURugB}0 x[hy 󅆑'_ȍe#G.8h þ}@ Fi("D *G܅ ]ppU҅ :x [$tMS\ `$ψ`9p]"4L 42 ./T`&~'w=~H ,,*K,m\0DxCpv&tjr+PK,n$!Bca7唓Εp~?t! cΠcF? 0,DR;dMo=0>`HX;PK *8NB%v%v!houghtransform/shape/template.jpgJFIFHH ExifMM*bj(1r2i ' 'Adobe Photoshop CS2 Windows2007:07:10 10:53:12Pr&(. QHHJFIFHH Adobe_CMAdobed            rP"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TY?Y[\6]m;k}GEv餤wށl]JNkFQC4kFYYb1>~ҝ_~[h.,֋]c=z=7?_)_R_Z\rz˘ӣ>="\_R} } ]J|,\ebmQ=:=_b~uk5s_Y?נ$?WUuXz_m@ h2 \)}ŞV?t.zMt=Jl:>Ee^]AqX[ߪv/Z hf=M~ѕo܊YҞ%c/NGUoKn9XӶʞYnW}YU~IOUW]Y:Sm6kX|wh~Á=L`ªc=Ϳ.鮃tj:F8s1k /oy>ms\-$A$IJI$RI$ Wz?䎷`Ugͮ=۵Y]~Gtlv*NǏ}7mks⿬ߟp`fO;Xp, `gh[=?$_A5s؟W1eoe>YKg粿xrI1*Y}B[Gs}O. )I$JRI$I$/??5zs}X]lE-}WJz>)z}xqGKli6QQcVSȭ%?U w(amʴdìQg߳+ϠI%)$IJI$R:j]\_?_yIOSOGف~O;O_,Lv~o~eٮݍw7l%d7_ )I$JRI$I$/?uO"Oj7m~5 #b~/!"-&V7om} ʸz_BzOӃ>b} -q_K-1* B?*12ŧ3ަ>Mm,^c9,Z3qno[F<n\WʿeHّc/x F3skCk]w鮧ڒ$IJI$RI$/*,[2]Vn|v7W*1odorn֑cT}~e_U_e`_2>to̱g5׵n繙?)4k]&-X7ƭR'kus˞o$UsSѿA~K\\.%s]][[^f=^LJpjlkz--=Ӷk^O9}[ǩZ\_u;l?fck Łm9u{kwe3-Lށk:_\kLߏ&[[c*-n/{V)RX8_^Tm1v/xtYg͛?m_sCCjk=lؒV@{ZhoOfVͻIgj=:7+\SCvcGۘʛ?ղ2힫g/wvOPy$45muUUmke~e)VYz)PsA?ĥkkm^tgǧRI%?Tʩ$SY37wr?W $*$GoA/_Gw˟Ѿ_ݿ>J~?VCm|J~I|JjPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM08BIM-8BIM@@8BIM8BIMQrPSenza titolo-1PrnullboundsObjcRct1Top longLeftlongBtomlongrRghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongrRghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM mPrj QJFIFHH Adobe_CMAdobed            rP"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TY?Y[\6]m;k}GEv餤wށl]JNkFQC4kFYYb1>~ҝ_~[h.,֋]c=z=7?_)_R_Z\rz˘ӣ>="\_R} } ]J|,\ebmQ=:=_b~uk5s_Y?נ$?WUuXz_m@ h2 \)}ŞV?t.zMt=Jl:>Ee^]AqX[ߪv/Z hf=M~ѕo܊YҞ%c/NGUoKn9XӶʞYnW}YU~IOUW]Y:Sm6kX|wh~Á=L`ªc=Ϳ.鮃tj:F8s1k /oy>ms\-$A$IJI$RI$ Wz?䎷`Ugͮ=۵Y]~Gtlv*NǏ}7mks⿬ߟp`fO;Xp, `gh[=?$_A5s؟W1eoe>YKg粿xrI1*Y}B[Gs}O. )I$JRI$I$/??5zs}X]lE-}WJz>)z}xqGKli6QQcVSȭ%?U w(amʴdìQg߳+ϠI%)$IJI$R:j]\_?_yIOSOGف~O;O_,Lv~o~eٮݍw7l%d7_ )I$JRI$I$/?uO"Oj7m~5 #b~/!"-&V7om} ʸz_BzOӃ>b} -q_K-1* B?*12ŧ3ަ>Mm,^c9,Z3qno[F<n\WʿeHّc/x F3skCk]w鮧ڒ$IJI$RI$/*,[2]Vn|v7W*1odorn֑cT}~e_U_e`_2>to̱g5׵n繙?)4k]&-X7ƭR'kus˞o$UsSѿA~K\\.%s]][[^f=^LJpjlkz--=Ӷk^O9}[ǩZ\_u;l?fck Łm9u{kwe3-Lށk:_\kLߏ&[[c*-n/{V)RX8_^Tm1v/xtYg͛?m_sCCjk=lؒV@{ZhoOfVͻIgj=:7+\SCvcGۘʛ?ղ2힫g/wvOPy$45muUUmke~e)VYz)PsA?ĥkkm^tgǧRI%?Tʩ$SY37wr?W $*$GoA/_Gw˟Ѿ_ݿ>J~?VCm|J~I|J8BIM!UAdobe PhotoshopAdobe Photoshop CS28BIM:http://ns.adobe.com/xap/1.0/ image/jpeg Adobe Photoshop CS2 Windows 2007-07-10T10:53:12+02:00 2007-07-10T10:53:12+02:00 2007-07-10T10:53:12+02:00 uuid:F20C1ACBC12EDC11B34BAE4B665B3E13 uuid:58AC54FDC22EDC11B34BAE4B665B3E13 uuid:F10C1ACBC12EDC11B34BAE4B665B3E13 uuid:F10C1ACBC12EDC11B34BAE4B665B3E13 1 720000/10000 720000/10000 2 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;2DB04334391E22204D1F58FFDBB77466 80 114 1 36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;13ABC24ED162D90F48CDE6B5C92FA041 3 sRGB IEC61966-2.1 XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@rP      u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?ߺ^@P|^ھ/?W_&33K}cԴ5;{KmSWd=MmM.GU]^^׺ߺD0W ?ic?/sumͥmrc6ۙ ?Df3sP8!R\/KEvD8圪Oy-A{ z9F쎜;Oٞ)^TCuKI!O=8pyO[& `l}k{^׺ub+utWrRpt;+ :v ݝ5prolpw5 =Wg7n":Ln6^/ ۬>\n31;k7Vݻ;OiW>3wl ǐ۳>c 5u##ڹ|VRlm߭,~~ߺZ/WW泿=?w`f8.κN{rG[FݴkM6F*ʝ[%߾׺u{{^׺u`jUo`vrbtѨ\?'V6{o lX[7rewӜ慱m{һT]q|yO?>uە8liv.䓸jRm}߸;Kˀ4}{4xZZNGtհdW WV_ =<n7/(?/]_;Kgw>_#w_=!2utx?eH’_uu{{^׺u{ƪ=}]d?[YE:˰ v}fn':1Ow1eou}\p|xJ?/=Fxmؼt};Ylm Wv1)j2Uϑl4?#c2G>Q]ߧ`}?a{'qBXf<[~^׺u{{^׺u{A>9U&4oG6VQ{J~߻|ߦv}kݷ_Ó5$P`׺?Ȅx?ϒݪ?= p6vyl ۟S& Ou9j5vJJu׽u~{ߺ^׽u~{ߺZ==:_%:u{~@zXg?t^Sz'7wqx>_?PSj8(׺?u~_~m{{^׺u{{^׺u :`-PuI}\Y|߯_ֵG~C+M\rMϊS8dfJ=#X9JlM?P6))ʗ4ՕiYܙ2U)W:< "xjCYgjj:g{^׺u{{^׺u۬?~U{^װL<_O߽n&dbn}#<2r_:hЫe Ȟj'ӭ^׽u~{ߺ^׽u~{ߺZŸQ )wA {7`o~_{x0qmۛ> :Yܰys8>Y(׺ߺ^׽u~{ߺ^֨_~?;Ouo>76a*?; 6s-ޔ԰-f JV{uSnN_oV'wv'_n8/;!OOUuU=sK$}׺ߺTQ6σϲ;n>n=a귿ǎp},v Fs$$䚖ofDYu/]zotw&뿜}uk6;{[O)Sxn,bQ alt_O}׺~{ߺ^׽uTONj=ؿ8om6ܽܽ>)SSқCq;<9l3㩏QTTg1u7}^|~aw{tacjas)U>w5{ {uw׺ߺ^ 2ɱ>TouyzSԭQa^c`X,W]|[>eds[z]^6(._ 7Zm`_>Qc9h\^&\^T;jeƦy_Jd[b*}[J=/W!v/cwVڨĢ׺YIq\]W}0Yj\|ةRzx(}׺u=/;Wwd.ڧNĢ)cHjr];}),j|8*^ yj)׺ !_5/EG;?[3֛g{6oF-)u9MNy}EiW.箖lV??&aF{1[ڙಽudU&ilN؛Kg ξ zU趾;{׽uߺ^׽t|X-ddܟV?K._n}u@ίʟ`۠?Scf/j;_7?^Sʟ۠?Ocf/Uǃ:7?{^;cOM',̺۟M?ٹ~׺u~{ߺ_PK (*8 AMETA-INF/PK '*8'w+META-INF/MANIFEST.MFPK *8AHhoughtransform/PK *8Auhoughtransform/icons/PK *8Ahoughtransform/shape/PK k6iE houghtransform/Hough.classPK k6 Խ houghtransform/ImageFilter.classPK ب*8Bhoughtransform/ImageFrame.classPK F*8)+C3C3$0houghtransform/ImageOperations.classPK ب*8oL??Nhoughtransform/ImagePanel.classPK F*8[!1Thoughtransform/Main.classPK !*8B##!Vhoughtransform/MainWindow$1.classPK !*8Mv"_Zhoughtransform/MainWindow$10.classPK !*8}}_"]houghtransform/MainWindow$11.classPK !*8p" ahoughtransform/MainWindow$12.classPK !*8ok"cdhoughtransform/MainWindow$13.classPK !*81"ghoughtransform/MainWindow$14.classPK !*8q"khoughtransform/MainWindow$15.classPK !*8'0"hnhoughtransform/MainWindow$16.classPK !*8QL"qhoughtransform/MainWindow$17.classPK !*8:*#"uhoughtransform/MainWindow$18.classPK !*8;"mxhoughtransform/MainWindow$19.classPK !*85A##!{houghtransform/MainWindow$2.classPK !*8`["&houghtransform/MainWindow$20.classPK !*8WU"}houghtransform/MainWindow$21.classPK i6ޥ"ԅhoughtransform/MainWindow$22.classPK i6D[$D"houghtransform/MainWindow$23.classPK i6f"vhoughtransform/MainWindow$24.classPK !*8D!Hhoughtransform/MainWindow$3.classPK !*8 !houghtransform/MainWindow$4.classPK !*8!houghtransform/MainWindow$5.classPK !*8%!Jhoughtransform/MainWindow$6.classPK !*8r!houghtransform/MainWindow$7.classPK !*8 !houghtransform/MainWindow$8.classPK !*8!Choughtransform/MainWindow$9.classPK !*81f$houghtransform/MainWindow$Task.classPK !*8­+]+]houghtransform/MainWindow.classPK k6^--houghtransform/RBpair.classPK 6h}}dhoughtransform/RTable.classPK k6Ȋk6houghtransform/Utils.classPK x6Dr119houghtransform/garbagePK F*8@R&#khoughtransform/icons/document-open.pngPK F*8X&mhoughtransform/icons/document-save.pngPK (*8 T#ohoughtransform/icons/edged_icon.gifPK (*8j(thoughtransform/icons/hori_icon copia.gifPK F*8ҲAA){houghtransform/icons/lines_hough_icon.gifPK (*8&&#>houghtransform/icons/lines_icon.gifPK *8>,houghtransform/icons/main.pngPK 4*8Znn6houghtransform/icons/preferences-desktop-wallpaper.pngPK 4*8%ӻ dd)Thoughtransform/icons/stock_brightness.pngPK *89,+houghtransform/icons/stock_display-grid.pngPK *8Y ++'_houghtransform/icons/stock_draw-arc.pngPK *8L bb,ϑhoughtransform/icons/stock_draw-arc_vert.pngPK *8>cll({houghtransform/icons/stock_draw-line.pngPK *8|2-houghtransform/icons/stock_draw-polygon-filled.pngPK 4*8@o#Xhoughtransform/icons/stock_exit.pngPK ,*8>,,houghtransform/icons/stock_filters-aging.pngPK *82/houghtransform/icons/stock_filters-solarize.pngPK *8(&||)houghtransform/icons/stock_help-agent.pngPK *8L)(houghtransform/icons/stock_quickmask.pngPK F*8e#@/ houghtransform/icons/stock_symbol-selection.pngPK 4*8(#OO'#houghtransform/icons/stock_undelete.pngPK (*8Ѩت(houghtransform/icons/vert_icon copia.gifPK *8NB%v%v!houghtransform/shape/template.jpgPK@@&