CBI Platform Introduction: filter development and integration Jingxin Nie Medical Image Computing Lab Center for Biological Informatics The Methodist Hospital Research Institute Weill Medical College of Cornell University
Filter Types Static and Dynamic Filter Both type of libraries are supported in our platform. Function and Object Only function style filter are supported in the current version platform. Object-based Filter will be supported in next version.
Filter Development Though static library could be supported in our platform, dynamic library is highly recommended for filter develop: 1. Static library with different compiler have certain problems when integrate with other filters. 2. Dynamic call other dynamic library from static library is not well supported.
Filter Development Filter Development is similar to dynamic library development, after which we can get: *.h header files of the filter *.lib library link of the filter *.dll binary dynamic library of filter
MinGW or MSVC Dll created by MinGW and then called by MSVC or vice versa can be well supported only if it’s a standard C dll. C++ type dll could be compatible to our system if it’s compiled by both MinGW and MSVC.
Filter Integration (1) For each filter function which has been “export” in dynamic library, add it to Database.xml E.g. filter: char * cbiChangeImageFormat(const char* imageName, const char* imageFormat) Could be added into database as:
- Change image Format. cbiUtility.h cbiUtility.lib char* 1 - Source image. const char* static - Image format. const char* static
Database Entry - Function Item Name Filter name Describe Filter description HeaderFile.h file that includes the filter define. LibFile.lib files that the filter used, multi-.lib file could be separated by “,” ReturnType Return value type OwnerID preserved for the filter developer’s ID. 1 is preserved for OpenCV. Parameter Parameter sets used by filter
Database Entry - Parameter ItemValueItemValue Name Parameter name InitialType program/static Describe Parameter description Input Is the parameter a input (1/0) IsInFlow could the parameter be drag-and-drop in flow. (1/0) Output Is the parameter a output (1/0) VarType Parameter type DefaultValue Default value of the parameter CanBeNull Could the parameter be left as NULL (1/0)
Filter Integration (2) Copy *.h and *.lib file to {app}/include/ and {app}/lib respectively. Copy *.dll file to {app}/dll. Copy the new “Database.xml” to {app}/, replacing the original “Database.xml”. Here {app} means the CBI Platform installation root directory. Now Integration is done.