|
@@ -11,6 +11,7 @@ from collections import defaultdict
|
|
from PyQt4.QtGui import *
|
|
from PyQt4.QtGui import *
|
|
from PyQt4.QtCore import *
|
|
from PyQt4.QtCore import *
|
|
|
|
|
|
|
|
+from shape import shape
|
|
|
|
|
|
__appname__ = 'labelme'
|
|
__appname__ = 'labelme'
|
|
|
|
|
|
@@ -221,25 +222,39 @@ class Settings(object):
|
|
|
|
|
|
class Label(QLabel):
|
|
class Label(QLabel):
|
|
done = pyqtSignal()
|
|
done = pyqtSignal()
|
|
- epsilon = 0.1 # TODO
|
|
|
|
|
|
+ epsilon = 7**2 # TODO: Tune value
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
def __init__(self, *args, **kwargs):
|
|
super(Label, self).__init__(*args, **kwargs)
|
|
super(Label, self).__init__(*args, **kwargs)
|
|
self.points = []
|
|
self.points = []
|
|
|
|
+ self.shapes = [shape('one', QColor(0, 255, 0))]
|
|
|
|
|
|
def mousePressEvent(self, ev):
|
|
def mousePressEvent(self, ev):
|
|
self.points.append(ev.pos())
|
|
self.points.append(ev.pos())
|
|
|
|
+ self.shapes[0].addPoint(ev.pos())
|
|
if self.isClosed():
|
|
if self.isClosed():
|
|
self.done.emit()
|
|
self.done.emit()
|
|
print "Points:", self.points
|
|
print "Points:", self.points
|
|
self.points = []
|
|
self.points = []
|
|
|
|
+ self.shapes[0].setFill(True)
|
|
|
|
+ self.repaint()
|
|
|
|
|
|
def isClosed(self):
|
|
def isClosed(self):
|
|
- return len(self.points) > 1 and self.closeEnough(self.points[0], self.points[1])
|
|
|
|
|
|
+ return len(self.points) > 1 and self.closeEnough(self.points[0], self.points[-1])
|
|
|
|
|
|
def closeEnough(self, p1, p2):
|
|
def closeEnough(self, p1, p2):
|
|
- return abs((p1.x()**2 + p1.y()**2) - (p2.x()**2 + p2.y()**2)) < self.epsilon
|
|
|
|
-
|
|
|
|
|
|
+ def dist(p):
|
|
|
|
+ return p.x() * p.x() + p.y() * p.y()
|
|
|
|
+ print p1, p2
|
|
|
|
+ print abs(dist(p1) - dist(p2)), self.epsilon
|
|
|
|
+ return abs(dist(p1) - dist(p2)) < self.epsilon
|
|
|
|
+
|
|
|
|
+ def paintEvent(self, event):
|
|
|
|
+ for shape in self.shapes:
|
|
|
|
+ qp = QPainter()
|
|
|
|
+ qp.begin(self)
|
|
|
|
+ shape.drawShape(qp)
|
|
|
|
+ qp.end()
|
|
|
|
|
|
|
|
|
|
def main(argv):
|
|
def main(argv):
|