Code Monkey home page Code Monkey logo

adamvallance / celluview Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 0.0 44.18 MB

cellUview is alternative software that runs on an OpenFlexure 3D-printed microscope. Images are enhanced in real-time by changing exposure, contrast, edge enhancement, dilation, contrast and k-means clustering.

Home Page: https://adamvallance.github.io/cellUview/

License: GNU General Public License v3.0

CMake 1.64% C++ 93.45% Shell 4.67% C 0.24%
biology cpp engineering glasgow-university image-processing image-viewer k-means-clustering microscopy opencv openflexure science

celluview's People

Contributors

adamvallance avatar mark-main avatar mlsalloum avatar n0ob1243 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

celluview's Issues

Investigate using Libcamera rather than opencv videoio

PiCamera is deprecated in Bullseye 11. LibCamera2 would replace opencv videoio. This could potentially help with Flatfield correction, by allowing default processes to be turned off which may be causing colour issues.

Video feed colours blown out

Looks like there is no/little red and the colors are messed up (when running on linux desktop through webcam).
Maybe an issue with BGR vs RGB?

Import trained CNNs and process (Stretch)

If a user or organisation has trained a convolutional neural network (CNN) on existing images and wishes to use this in real-time, they should be able to import the CNN and use it for real-time image processing.

  • develop framework for CNN import
  • add GUI element to enable/disable
  • add GUI element for text output
  • train small demonstration CNN for cellUview

Refactor code to ensure it is well structured

For the purposes of marking for realtime embedded processors 5, we need to refactor the code to match the course spec. by being well formatted and obeying SOLID principles, etc.

Create capture of frame

Perhaps allow for an option of saving the raw and enhanced frames? - use a copy constructor for the frame and enhance the copy

Change name of window to cellUview

GUI window name currently set to MainWindow therefore showing up on the desktop as MainWindow. This should be replaced with cellUview

Flatfield can't be updated

Was seeing a bug where after doing a flatfield capture and turning on, new flatfield captures were not possible.

Fix color issue in flatfield

Weird green centrally with pink at edges, can this be fixed? Maybe turning things off using libcamera, see #17, could help with this.

Create QT GUI

GUI should:

  • Allow User to view stream of video frames as provided by the OpenFlexure
  • Allow the user to vary parameters of image enhancement
  • Allow the user to enable image analysis/classification
  • Allow user to show hide separate control/gallery panels
  • User can set note
  • Change name of window from MainWindow to cellUview
  • Gray out/hide motor controls if not plugged in

Implement HSV saturation enhancement for selected hues.

Increase saturation values for the selected hues to enhance colour. In HSV (hue, saturation, value) space.
If a user has stained cells with a given hue, it may be useful for them to increase the saturation of the hue of the stain.

Increase frame size

Current frame size from the default opencv videoio is 640x480 - much smaller than raspberry pi camera. Maybe look at using libcamera to open and pass frames through existing framework.

Port Motor Control (Stretch)

Implement motor control software to interface with the Openflexure motor board. This would be required to implement a tiling procedure #14.

Implement Tiling Procedure (Stretch)

Implement existing logic for capturing an image, moving the stage, applying cross-correlation to determine the overlap and combining many images to build up a high-resolution image to be previewed by the user and exported. This requires motor control #13 to be implemented.

Core dumped after camera open fails

Following error message is printed when camera open fails:

'''
cellUview Error! blank frame grabbed
Please check your PiCamera microscope module is connected.<nterminate called after throwing an instance of 'std::system_error'
what(): Resource deadlock avoided
Aborted (core dumped)
'''

Would be ideal if program were to exit properly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.