diff --git a/src/gui.py b/src/gui.py --- a/src/gui.py +++ b/src/gui.py @@ -33,7 +33,16 @@ class Application(tk.Frame): # board with detected stones self.boardView=BoardView(self) self.boardView.grid(column=1,row=0) - + + # more controls below the board + self.scaleTresB=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=lambda x: self.redrawImgView()) + self.scaleTresW=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=lambda x: self.redrawImgView()) + self.scaleTresB.set(30.0) + self.scaleTresW.set(60.0) + self.scaleTresB.grid(column=0,row=1,columnspan=2) + self.scaleTresW.grid(column=0,row=2,columnspan=2) + + # render everything self.redrawImgView() ## Stores a grid corner located at x,y coordinates. @@ -67,10 +76,12 @@ class Application(tk.Frame): widthRatio=origWidth/self.img.width() heightRatio=origHeight/self.img.height() sizeCoef=max(widthRatio,heightRatio) + tresB=self.scaleTresB.get() + tresW=self.scaleTresW.get() shift=EPoint(origWidth-self.img.width()*sizeCoef,origHeight-self.img.height()*sizeCoef)/2 - self.boardView.redrawState(self.imgOrig,sizeCoef,shift) + self.boardView.redrawState(self.imgOrig,sizeCoef,shift,tresB,tresW) ## Marks a point at the image with a green cross. Used for corners. def markPoint(self,x,y): @@ -92,9 +103,13 @@ class BoardView(tk.Canvas): self.drawGrid() self.grid() - - def redrawState(self,img,sizeCoef,shift): - self.detector.analyze(img,30,65,sizeCoef,shift) + + ## Redraws and reananalyzes the board view. + # + # @param tresB upper intensity treshold for a pixel to be considered black, [0-100] + # @param tresW lower intensity treshold for a pixel to be considered white, [0-100] + def redrawState(self,img,sizeCoef,shift,tresB,tresW): + self.detector.analyze(img,tresB,tresW,sizeCoef,shift) for r,row in enumerate(self.detector.board): for c,point in enumerate(row):