1 / 18

Reverse Engineering of Graphs: Reading Data Points from Scatterplots

Develop a program to accurately read data points from a graph image, using edge detection and shape discernment techniques. The tool will identify edges, divide them into axes and points, and display the points in relation to the axes. Written in Java, the program utilizes JPanel with BorderLayout, JButtons in GridLayout, JLabel with ImageIcon for images, and JRadioButton. Challenges include handling diagonal edges and inconsistent background colors for edge detection.

thomasramon
Download Presentation

Reverse Engineering of Graphs: Reading Data Points from Scatterplots

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reverse Engineering of Graphs: Reading Data Points from Scatterplots Maya Wei

  2. Purpose? Graphs are a visual method of displaying data. What happens if you no longer can find the original data, but are only left with an image? Mathematical manipulation in purely a visual representation is highly slim.

  3. Aim • To develop a program that can accurately read data points from a graph. Would return: (1,1), (2,2), (3,3), (4,4), (5,5)

  4. Precedents • Image Analysis: • Edge Detection • Shape Discernment • Application of Basic Techniques

  5. Development Graph, created in OpenOffice Calc Will identify edges Given that edges identified, divide edges into number, axis, and point Will show point in relation to axes Radio Buttons are Love <3

  6. Timeline (Quarter 1) Properly Display Images / Read Images in PixelGrabber – 3 Weeks Graph modifications, reading pixels, edge detection Change to BufferedImage, create graph GUI Creation

  7. Timeline (Quarter 2) Further GUI modification, addition of radio buttons GUI modification Identification – Axes, Points; Axis identification refined Identifying connected points, playing with data storage format – change to ArrayList<ArrayList<int[]>>

  8. Development and Display • Written in Java • JPanel • BorderLayout • JButtons in GridLayout • Images in JLabel with ImageIcon • JRadioButton \o/

  9. Graph • PNG image • BufferedImage • Can manipulate pixels easily • Alternative PixelGrabber • Modifying images difficult here • Background color same as point (0,0) • No guidelines • Minimalist

  10. Edge Detection • Highly primitive • Takes point, background • Are the point’s surrounding colors the same as the background colors? • If one yes, then it’s an edge.

  11. Edge Detection -- Problems • Doesn’t take into account diagonal • Based on assumption that background is same as (0, 0) • Assumption that colors are consistent (not one shade off background)

  12. Edges Orange are edges; many different items orange

  13. Connected Points • Using do-while loop • Searches through list of edge points to find the neighboring edge points • Adds onto arrayList, repeats • Primitive method, using anything advanced like iterators would cause an error

  14. Identification • Axes

  15. Extended • Visual display

  16. Further Work • Identifying scale (fun stuff) • Re-working GUI • Currently, “Extend” creates whole new image, work to get it to extend on image already given • Use of other graphs

  17. Learned? • Details have yet to be worked out, but the base is very much there. Scale will be the largest challenge. • Forwards and onwards to the next large adventure! (2nd Quarter)

  18. Cheers! <3 \o/

More Related