def edge_image(self): arr = self.image2.get_pixbuf().get_pixels_array() #imgrec.verbose = 1 imgrec.anchor(arr) imgrec.edge() self.invalidate()
def walk_image(self, xx, yy): #print "walk_image() dim =", iw, ih, "pos =", xx, yy arr = self.image2.get_pixbuf().get_pixels_array() imgrec.verbose = 1 imgrec.anchor(arr) imgrec.walk(xx, yy) self.invalidate()
def blank_image(self): pixb = self.image2.get_pixbuf() iw = pixb.get_width() ih = pixb.get_height() #print "img dim", iw, ih import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") arr = pixb.get_pixels_array() imgrec.verbose = 1 imgrec.anchor(arr) imgrec.blank(color=0xffffffff) rc = self.get_allocation() self.window.invalidate_rect(rc, False)
def norm_image(self): pixb = self.image2.get_pixbuf() iw = pixb.get_width() ih = pixb.get_height() #print "img dim", iw, ih import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") arr = pixb.get_pixels_array() #imgrec.verbose = 1 imgrec.anchor(arr) #print "Norm Image" #imgrec.normalize(1,2,3) imgrec.bw(1, 2, 3) rc = self.get_allocation() self.window.invalidate_rect(rc, False)
def anal_image(self, xxx=-1, yyy=-1): # Get img props. pixb = self.image2.get_pixbuf() iw = pixb.get_width() ih = pixb.get_height() print "img dim", iw, ih import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") arr = pixb.get_pixels_array() #imgrec.verbose = 1 imgrec.anchor(arr) #print "dims", imgrec.dim1, imgrec.dim2, imgrec.dim3 #print "width", imgrec.width, "height", imgrec.height hstep = imgrec.width / self.divider vstep = imgrec.height / self.divider # Interpret defaults: if xxx == -1: xxx = self.divider / 2 if yyy == -1: yyy = self.divider / 2 print "Anal image", xxx, yyy, hstep, vstep # Draw grid '''for xx in range(self.divider): hor = xx * hstep imgrec.line(hor, 0, hor, imgrec.height, 0xff888888) for yy in range(self.divider): ver = yy * vstep imgrec.line(0, ver, imgrec.width, ver, 0xff888888)''' # Get an array of median values xcnt = 0 ycnt = 0 darr = {} for yy in range(self.divider): xcnt = 0 for xx in range(self.divider): hor = xx * hstep ver = yy * vstep med = imgrec.median(hor, ver, hor + hstep, ver + vstep) #imgrec.blank(hor, ver, hor + hstep, ver + vstep, med) med &= 0xffffff # Mask out alpha # Remember it in a dict self.add_to_dict(darr, xcnt, ycnt, med) xcnt += 1 ycnt += 1 # Set up flood fill fparm = floodParm(self.divider, darr) fparm.hstep = hstep fparm.vstep = vstep fparm.tresh = TRESH # Progress feedback fparm.inval = self.show_prog fparm.colx = int(random() * 0xffffff) flood(xxx, yyy, fparm) # Reference position self.aframe.append((xxx, yyy, 0xff8888ff)) # Display final image self.show_prog(fparm)