dennisjosesilva / pomar Goto Github PK
View Code? Open in Web Editor NEWMorphological Tree Framework in C++
Morphological Tree Framework in C++
A basic documentation for users get started with.
Design and implement the algorithm to compute area.
Fix Continuos to Continuous in the attribute naming.
Design and implement a class to represent a collection attributes over the nodes of a component tree. For example, this class should provide a way to access the values of a set of attributes (defined by the user) for each node. For example:
attr[attr_type][node_id] => return the value of attribute 'attr_type' of the node 'node_id'.
Design and implement the algorithm to compute the bit-quads incrementally.
Design and implement the class IncrementalAttributeComputer which implements AttributeComputer. This class provides the interface and algorithm to compute attributes in incremental fashion using a no-recursive algorithm.
The classes CTree and CTNode should have aliases for the most common types like the class Point2D.
The types should have aliases are:
Make all inheritance virtual.
Change the attributes integer vectors 'dx' and 'dy' to use IPoint2D vector instead, such that the caller must specify the same number of x and y coordinates.
We should write the pruning and image reconstruct algorithm and then we can write a "get started application" by implementing a connected filter (e.g. area opening).
Change return type from std::unique_ptr to std::unique_ptr in all methods of 8- and 4-connected adjacency creation.
Implement increasing and decreasing count sort algorithms.
Change the CTSorter to be a function in the CTBuilder's method build.
Design and implement the attribute computer which interacts with attribute collection. This function provides the interface to classes which compute attributes for a component tree.
The wiki page should have a get started page where the basic functionality of the framework should be shown. In this example, an image should be read (maybe using stb library), its component tree should be read, an attribute like area should be computed and an opening filter should be executed.
Design and implement a set of classes to represent Image 2D Indexing such that if it accesses a position out of domain it returns an invalid value (a constant value, null, exception etc...)
This is a refactor issue, the class and method names are pretty bad. This issue tries to make these names shorter and clear in order to make code shorter and easy to understand.
Below there are some suggestions to be discussed: (original name => proposed new name)
nodes
cmap
MorphologicalTree() => CTree()
MorphologicalTree(parent, sortedIndex, vertices) => CTree(parent, sortedIndices, vertices)
tranverseFromLeavesToRoot(visit) => tranverse(visit)
getNumberOfNodes() => numberOfNodes()
getNodeLevel(id) => nodeLevel(id)
getNodeParent(id) => nodeParent(id)
getNodeChildren(id) => nodeChildren(id)
getNodePixels(id) => nodeVertices(id)
reconstructTreeNode() => reconstructNode()
createNodes(parent, sortedIndex, vertices) => createNodes(parent, sortedIndices, vertices)
OK excepted by:
vertexIndixes => vertexIndices
sort(vertices) => sort(vertices)
countingSort() => countingSort(vertices)
sort(vertices) => sort(vertices)
countingSort() => countingSort(vertices)
build(vertices, adj, treeType)
buildWithSorter(vertices, adj, sorter) => build(vertices, adj, sorter)
findRoot(zpar, x)
canonizeTree(vertices, sortedVertices, parent)
getAdjacentElements(curElem) => neighbours(id)
Image2DAdjacencyRelationByTranslating(width, height, t) => AdjacencyByTranslating
createFourConnectedAdjacency(width, height) => create4CAdjacency(width, height)
createEightConnectedAdjacency(width, height) => create8CAdjacency(width, height)
Point2D => OK
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.