The project Task 1: Design and implement a Qt-based GUI digitiser. The digitiser is an application which is used to convert graphs published in scientific papers, project reports, and statistics into raw data that can be processed using data processing software such as MS Excel or MATLAB. Your application should be designed to work on 1D graphs. An example of such a graph is given below:
The digitiser works by allowing the user to calibrate the x-axis and the y-axis (converting pixel distance to physical distance), then it allows the user to click on many points on the graph. Every time the user clicks on a point, the application saves its coordinates in pixels, then converts them to physical coordinates using the calibration distance, eventually generating two columns of data, a column for x coordinates and a column for y coordinates respectively. This is known as manual digitising. The application will be used to digitise one curve at a time, where the plotted line is solid and has a black colour against a white background. In addition to the core functionality mentioned above, the application:
Should give the user the option to choose the type of the graph, whether it is linear-linear, linear-log, log-linear or log-log graph.
Should allow for saving a text file that has two columns, the first being the digitised x coordinates and the second being the digitised y coordinates of the graph, both in linear coordinates (log coordinates must be converted to linear before saving data).
Should allow the user to choose the type of the axes (linear/log) using three different methods. Should be validated by using a test graph as an input, digitising it, then plot the digitised data on top of the original graph using MATLAB, MS Excel or any other software.
Should be able to deal with potential run-time errors, which the developers should identify.
Task 2: Modify the application to have an automatic mode, where it is enough for the user to specify one or two points on the graph and the application will automatically determine many other points on the graph. This task is meant to be a challenge so no hints will be provided on how to do it. Page 3 of 4 It is an expectation from everyone to consult Qt documentation to
find any functions or classes that might be useful for the implementation of this project. Finally, you should make the programme as professional as possible. Imagine this project as a real life project given to you.
Reviews
There are no reviews yet.