Exemple #1
0
    def draw(self):
        fig = visualizeData(
            self._position_data,
            [graph.points for graph in self._clusters] + [self._nodes_left],
            reduce(add, [graph.edges for graph in self._clusters]), True)
        fig.canvas.draw()
        data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
        data = data.reshape(fig.canvas.get_width_height()[::-1] + (3, ))

        cv2.imshow('win', data)
        cv2.waitKey(10)
        plt.close(fig)
Exemple #2
0
 def draw(self, saveFile=None, drawEdges=True, time=10):
     fig = visualizeData(self._position_data,
                         [graph.points
                          for graph in self._clusters] + [self._nodes_left],
                         reduce(add,
                                [graph.edges for graph in self._clusters]),
                         True,
                         drawEdges=drawEdges)
     fig.canvas.draw()
     data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
     data = data.reshape(fig.canvas.get_width_height()[::-1] + (3, ))
     if saveFile is not None:
         cv2.imwrite(saveFile, data)
     cv2.imshow('win', data)
     cv2.waitKey(time)
     plt.close(fig)
Exemple #3
0
from Code.Graph import Graph
from Code.Data.DistanceMatrix import getDistanceMatrix
from Code.Data.LoadData import readData
from Code.drawGraph import visualizeData
from functools import reduce
from operator import add
position_data = readData(path="../objects.data")
matrix = getDistanceMatrix(position_data)
all_nodes = len(position_data)

g = Graph(list(range(all_nodes)), matrix)
edges_cut = []
# cutting max edges
for i in range(9):
    edges_cut.append(g.get_max_edge())
    g.remove_edge([edges_cut[i]])
print(g.compute_edges_length())
graphs = []
visualizeData(position_data, [g.points], g.edges)
# building clusters from disconnected graphs
for i in range(10):
    points = g.get_first_connected_subgraph()
    g.removePoints(points)
    graphs.append(Graph(points, matrix))

    visualizeData(position_data, [graphs[i].points], graphs[i].edges)

visualizeData(position_data, [graph.points for graph in graphs],
              reduce(add, [graph.edges for graph in graphs]))
Exemple #4
0
 def visualize(self, position_data):
     visualizeData(position_data,
                   [graph.points for graph in self._clusters],
                   reduce(add, [graph.edges for graph in self._clusters]))