mortbopet / rtoc Goto Github PK
View Code? Open in Web Editor NEWa Real-Time Object Classifier
License: MIT License
a Real-Time Object Classifier
License: MIT License
In process setup, it should be .
as the decimal separator, instead of ,
Would be nice to have the possibility to only save processed pictures with blobs on them. Should then be implemented in the imagewriter.
Idea - check for pictures with pixels that != 0. We could simply use cv::countNonZero()
Best case, you should be able to define areas in the picture which have different distance thresholds to determine whether it's a new object or a already found one.
Functionality for fixing this should already be present in the FrameFinder, but needs to be moved/implemented/used from FrameFinder.
Should be fixed in ImageDisplayerWidget::indexDirectory()
, where m_imageFileList should be sorted using the required procedure, after m_dir.entryInfoList(filters, QDir::Files);
has been called
In the preview window the default is 60f/s. However, that is not actual speed setting set, after simply marking the field and pressing enter, the speed increases for what should be 60f/s.
Should be some kind of increment in function ImageDisplayerWidget::getNextImage
(imagedisplayerwidget.cpp
, line 49).
Related; there should be a check for avoiding index out-of-bounds in m_imageFileList[m_acqIndex]
.
When loading a project file, there is a possibility that the selected experiment folder doesn't exist yielding that non of the pictures nor non of the data extracted are saved.
Getting images from folder are written thru ImageDisplayWidget, however, is that rational?
It's a small kind of clean-up-the-code issue, but in theory it would be more general if we had imagedisplaywidget called getNextImage from the acquisitionInterface and that in cv::Mat& AcquisitionInterface::getNextImage(bool& successful)
the function call at line 22 should be from some readFolderImages method. So that dataflow is something like
Source -> Acquisition -> Process
-> Preview
Let me know what you think
Fails to build with resulting error:
AutoUic error
-------------
The two source files
"/Users/jl/Dropbox/DTU/04_Semester4/fagprojekt/src/CellSorter/lib/experimentsetup.cpp" and
"/Users/jl/Dropbox/DTU/04_Semester4/fagprojekt/src/CellSorter/gui/experimentsetup.cpp"
contain the the same uic include string "ui_experimentsetup.h"
but the uic file would be generated from different source files
"/Users/jl/Dropbox/DTU/04_Semester4/fagprojekt/src/CellSorter/lib/experimentsetup.ui" and
"/Users/jl/Dropbox/DTU/04_Semester4/fagprojekt/src/CellSorter/gui/experimentsetup.ui".
Consider to
- add a directory prefix to a "ui_<NAME>.h" include (e.g "sub/ui_<NAME>.h")
- rename the <NAME>.ui file(s) and adjust the "ui_<NAME>.h" include(s)
Lader til at dataFlags ikke nødvendigvis bliver sat rigtigt eller at der et mismatch med regionPropTypes der inheriter dataFlags fra datacontainer.
Ihvertfald er PropFilter konstrueret så den tilhørende datacontainer har alle flag sat - hvilket jo klart nok ikke er optimalt, da kun filter-parameteren og PixelIdxList burde være sat...
Would it be more appropriate to use "Donor" as class name?
In the special case where a filename consists of more than one first-delimiter, the file-id is not correctly obtained.
When the experiment is done acquiring images, the function Analyzer::asyncStop() is called which implies Experiment::reset() being called, resulting in the program trying to clear data-vector in Experiment. However, it is not promised that ObjectFinder is done working on that data, as ObjectFinder::cleanObjects() are called when "finish:" is reached. This, more than often, results in full crash.
Samme som emne.
Du må lige forklare hvordan vi holder det mest optimalt her i gitten når vi igang med fun'n stuff
@mortbopet
Default processing presets should be moved to build directory and a default path should be set. This is to prevent anxious users from clicking thru there whole file-system.
Error in parameter test. In catch_parameters.cpp
section "Test parameter retrieval and type deduction", the if/else-statement always goes to else. Parameter type is the wrongly returned as "i|Integer"
rather than "i"
.
When shifting away from acquistion pane, the preview starts playing.
As a programmer, i would like a way to provide a single cv::mat& image to the analyzer, have the analyzer apply its current processing pipeline to the image. Preferably with the least amount of overhead possible, since i afterwards need to transform the cv::mat into a Qt format using cv::mat::data().
ie.
void Analyzer::processSingleFrame(cv::Mat& img);
...
cv::mat image;
analyzer.processSingleFrame(image)
// image is now processed
Can Jens please squash them commits, huh?
As an example, when using the binarize process on a picture 99.9% of the time you would want Maximum binary value = 255.
Would be neat if it was possible to have these values pre written in the setup window.
A user-workaround is of course simply use a experiment-preset as starting point.
Note: This is a 100p neatness feature!
In objectfinder, we append m_trackerlist with all tracker-objects, but in theory we only need the tracked objects from last frame.
As we search through the whole vector everytime findObjects() is called, this calls for an optimization.
After finding objects it would be delicate to work with a ROI of the original grayscale picture defined by the actual object found.
Meaning, the ROI should be the boundingBox of found object and from this region, you should be able to extract data.
And clearly not of Analyzer
When the image-folder preview player stops at the end, it would be need if it simply replays from beginning when pressing the play button. Though, it should not simply loop the pictures and only stop if the user presses the play button again.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.