Getting Started Coding/Farsight
From FarsightWiki
Return to:
Contents |
What is Farsight
Farsight is a collection of image processing and analytic tools providing:
- Segmentation
- Tracing
- Tracking
- Classification
Current Status
- Many undocumented projects
- Many duplicate projects
- Many dead/forgotten projects
Things to Improve
- Coding Standards
- Can someone else read it?
- Modular Framework
- Better API (Application Programming Interface)
- Updates should be global
- Pieces talk together
- No reinventing of the wheel
- "It Compiles"! = "It works"
- Documentation
Farsight Data
Our data is Microscopy data
- Image files vary from 2-D to 5-D
- A dataset may vary from 10gb to 300gb
Software
- CMake
- automates compiling, testing and packaging of software
- ITK (Insight Segmentation and Registration Toolkit)
- VTK (Visualization Toolkit)
- VXL (the Vision-something-Libraries)
- a collection of C++ libraries designed for computer vision research and implementation.
- Qt
- cross-platform application and UI framework with APIs for C++ programming
ITK
ITK Template
Template Typedef before you use Filter style SetInput() Set_Param() GetOutput() Update() Useful Functions Use Image Iterators Use Smart Pointers Region Of Interest
Example
#include "itkImage.h" #include "itkImageFileReader.h" #include "itkImageFileWriter.h“ #include <iostream> #include <string> int main(int argc, char*argv[]) { if(argc < 3) { std::cerr << "Required: input, output" << std::endl; return EXIT_FAILURE; } typedef itk::Image<unsigned char, 3> ImageType; typedef itk::ImageFileReader<ImageType> ReaderType; ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName(argv[1]); reader->Update(); typedef itk::ImageFileWriter< ImageType > WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetFileName(argv[2]); writer->SetInput(reader->GetOutput()); writer->Update(); return EXIT_SUCCESS; }
VTK
VTK Template
Render Window Renderer Interactor Actors/Props/Volumes Actors Data Points Cells (edges) Cell Arrays Data Mapper Rendering Properties Color Pickable Size Position
VTK Interaction
Pickers Camera Control Callback Command Data Visualization nD datasets Image Data Meshes Volumes VTK Table (we use this everywhere) Titan Graph networks Charts
Qt
GUI Windows Layouts Widgets Interaction Action Signals Slots QPainter QImage Selections