A converter that takes an image of a bar plot and outputs the values of each bar.
- See
example_chart.pngfor example input, andexample_export.csvfor the output.
Download the latest version from Github Releases
- If you don't have Python on your PC, download the
abc.exefile and double-click to run it (Windows). - If you are familiar with Python, the
abc.pyis the main file you are looking for; All required packages can be found inrequirements.txt
- Click the "Select Image" button to upload an image file. Supported formats:
.png,.jpg,.jpeg,.bmp,.tif,.tiff- Note: use cropped images containing only the bar plot (excluding titles, legends, etc.) to improve accuracy.
- Click the "Process Bar Recognition" button to analyze the bar plot.
- The recognized bars will be highlighted in green.
- The system will mark:
- The shortest bar's top with a blue line.
- The tallest bar's top with a red line.
- Bar heights (in pixels) will be displayed.
- Enter the real-world values for:
- The shortest bar
- The tallest bar
- The beginning date (YYYY-MM-DD)
- The end date (YYYY-MM-DD)
- Click "Process Data Conversion" to calculate and display the extracted values.
Click the "Export CSV" button to save the extracted data for further analysis.
-
Bar Detection
- The
Recognizerclass inrecognizer.pyuses OpenCV to detect and measure bar heights (in pixels).
- The
-
Value Estimation
- The program computes the pixel-to-value ratio based on the tallest and shortest bars to determine each bar’s real-world value.
-
Date Estimation
- Since the bars represent evenly spaced time intervals, the program distributes the provided start and end dates across all detected bars.
- Using Pandas with data storage, date calculation and CSV exportation.
-
Graphical Interface
- The application uses tkinter for an interactive user interface.
This project is licensed under the MIT License.