Quartz Energy - Numpy Cube Visualizer Tool Update

Register
Submit a solution
The challenge is finished.

Challenge Overview

In a previous challenge, we developed a Python 3 QT desktop application which allows users to visualize a 3D cube of labeled points where each point in the cube has an (x, y, z) coordinate and a value between 0 and 255.  Here is a z-slice view of the data shown below:

Our application can also consume a second matrix of the same dimensions as the first which acts as a feature labelling mechanism.  In this matrix each voxel is assigned to a label -- an integer -- so that features can be grouped. The app consumes both matrices in npy file format. A labeled z-slice view is show here.  Each labels is assigned a different color in the app:

A sample probability cube can be found here.

A sample labelling cube can be found here.

Up until now the purpose of the app has been purely read only.  Users used the app to display what is happening with the raw data and the labels.  For this challenge, our client would like to add the ability to manually mark the cracks to create new labels for an existing probability cube.  This should be a third, separate label file.

 

To facilitate this functionality, the app will need the following features:

  1. The ability to zoom into (and out of) the individual slice views at higher (and lower) resolution.

  2. The capability to select a color for a new feature/label.

  3. A paint like feature which allows the user to manually update the color selected in step 2.  A little paint-brush icon is perfect here.

  4. The app should display a list of the labels (which are just integers) and colors previously used.

  5. Allow a user to copy an existing label file as a starting point.

  6. Users should only be able to label non-zero voxels in the raw data/probability cube.  In other words, you can only label the “cracks” not the background.

  7. Users should designate the file/path of the output matrix file

  8. Clear indication of whether the user is in write mode where the 3rd matrix file is being displayed and written or whether we’re only in read mode where the read-only label files in being displayed.

Code for the existing tool can be found in the Code Document forums attached to this challenge.



Final Submission Guidelines

1. Please submit all code required by the application in your submission.zip
2. The existing application documents the system dependencies in a requirements.txt file.  Please add new dependencies to this file to ease deployment of the app.
3. You may use any Python Open Source libraries or technologies provided they are available for commercial use.
4. The winner may be asked to send a merge request to our gitlab repo.

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30063475