def drawImage(image,h,w,psize): """ Draw the image as a continuous line on a surface h by w "pixels" where each continuous line representation of a pixel in image is represented on the output suface using psize by psize "pixels". @param image an opencv image with at least 3 channels @param h integer representing the hight of the output surface @param w integer representing the width of the output surface @param psize ammount that each pixel in the input image is scaled up """ h = (h/psize)-2 w = (w/psize)-2 size = opencv.cvSize(w,h) scaled = opencv.cvCreateImage(size,8,3) red = opencv.cvCreateImage(size,8,1) blue = opencv.cvCreateImage(size,8,1) green = opencv.cvCreateImage(size,8,1) opencv.cvSplit(scaled,blue,green,red,None) opencv.cvEqualizeHist(red,red) opencv.cvEqualizeHist(green,green) opencv.cvEqualizeHist(blue,blue) opencv.cvMerge(red,green,blue,None,scaled) opencv.cvResize(image,scaled,opencv.CV_INTER_LINEAR) opencv.cvNot(scaled,scaled) # Draw each pixel in the image xr = range(scaled.width) whitespace = 0 for y in range(scaled.height): for x in xr: s = opencv.cvGet2D(scaled,y,x) s = [s[j] for j in range(3)] if (sum(s)/710.0 < 1.0/psize): whitespace = whitespace+psize else: if whitespace is not 0: line(whitespace,6,(xr[0]>0)) whitespace = 0 drawPixel([j/255.0 for j in s],psize,(xr[0]>0)) if whitespace is not 0: line(whitespace,6,(xr[0]>0)) whitespace = 0 line(psize,2) xr.reverse() displayImage(output) events = pygame.event.get() for event in events: if event.type == QUIT: exit()
def main(argv=None): # declair globals global ser, output, curX, curY, last_dir # Open serial connection ser = serial.Serial(DEFAULT_SERIAL_PORT, 9600, timeout=1) last_dir = [None, None] # Print starting time stamp print time.strftime ('Start Time: %H:%M:%S') # Create the output image curX = 0 curY = 0 output = opencv.cvCreateImage(opencv.cvSize(DEFAULT_OUTPUT_WIDTH,DEFAULT_OUTPUT_HEIGHT), opencv.IPL_DEPTH_8U, 3) opencv.cvZero(output) opencv.cvNot(output,output) global window, screen # Initialize pygame if not already initialized if not pygame.display.get_init(): pygame.init() window = pygame.display.set_mode((DEFAULT_OUTPUT_WIDTH,DEFAULT_OUTPUT_HEIGHT)) pygame.display.set_caption("Etch-A-Sketch") screen = pygame.display.get_surface() # Draw the image calibrationRoutine(60) # Show the image displayImage(output) # Print end time stamp print time.strftime ('End Time: %H:%M:%S') # loop while(1): events = pygame.event.get() for event in events: if event.type == QUIT or (event.type == KEYDOWN): exit()
def cmpFG(fgmask, fgmaskideal): '''Returns tuple (tp,tn,fp,fn)''' notfgmask = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmask, notfgmask) notfgmaskideal = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmaskideal, notfgmaskideal) res = opencv.cvCloneMat(fgmask) opencv.cvAnd(fgmask, fgmaskideal, res) tp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask, notfgmaskideal, res) tn = opencv.cvCountNonZero(res) opencv.cvAnd(fgmask, notfgmaskideal, res) fp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask, fgmaskideal, res) fn = opencv.cvCountNonZero(res) return (tp, tn, fp, fn)
def cmpFG(fgmask,fgmaskideal): '''Returns tuple (tp,tn,fp,fn)''' notfgmask = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmask,notfgmask) notfgmaskideal = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmaskideal,notfgmaskideal) res = opencv.cvCloneMat(fgmask) opencv.cvAnd(fgmask,fgmaskideal,res) tp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask,notfgmaskideal,res) tn = opencv.cvCountNonZero(res) opencv.cvAnd(fgmask,notfgmaskideal,res) fp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask,fgmaskideal,res) fn = opencv.cvCountNonZero(res) return (tp,tn,fp,fn)
def main(argv=None): if argv is None: argv = sys.argv if len(argv) <= 1 or argv[1] is "-": im = DEFAULT_INPUT_IMAGE else: im = argv[1] if len(argv) <= 2 or argv[2] is "-": psize = DEFAULT_PIXEL_SCALE else: psize = int(argv[2]) if len(argv) <= 3 or argv[3] is "-": h = DEFAULT_OUTPUT_HEIGHT else: h = int(argv[3]) if len(argv) <= 4 or argv[4] is "-": w = DEFAULT_OUTPUT_WIDTH else: w = int(argv[4]) if len(argv) <= 5 or argv[5] is "-": serialport = DEFAULT_SERIAL_PORT else: serialport = argv[5] # declair globals global ser, output, curX, curY, last_dir # Open serial connection if serialport is not -1: ser = serial.Serial(serialport, 9600, timeout=1) else: ser = 0 last_dir = [None,None] # Print starting time stamp print time.strftime ('Start Time: %H:%M:%S') # Load the image image = highgui.cvLoadImage(im) # Create the output image curX = 0 curY = 0 output = opencv.cvCreateImage(opencv.cvSize(w,h), opencv.IPL_DEPTH_8U, 3) opencv.cvZero(output) opencv.cvNot(output,output) # Draw the image drawImage(image,h,w,psize) # Show the image displayImage(output) # Print end time stamp print time.strftime ('End Time: %H:%M:%S') # loop while(1): events = pygame.event.get() for event in events: if event.type == QUIT or (event.type == KEYDOWN): exit()