# if jpg swap RGB #if jp4: #pi = swapRGB(pi) # add frame - if full save logs isFull = slitscanner.addFrame(pi) # preview display if display: scale = out_w / float(screen[0]) if out_h / float(screen[1]) > scale: scale = out_h / float(screen[1]) if scale < 1: scale = 1 tile = swapRGB(slitscanner.getImage()) cv_im = PIL2Ipl( tile.resize( ((int) (tile.size[0]/scale), (int) (tile.size[1]/scale)), Image.NEAREST)) #now show cv.ShowImage("preview",cv_im) if flag_calibration: ts = 24 cv.MoveWindow("original_frame",0,cv_im.height + ts) cv.MoveWindow("darkframe_substracted",0,cv_im.height + (frame.height+ts) + ts) cv.MoveWindow("final_frame",0,cv_im.height + 2* (frame.height+ts) + ts) cv.MoveWindow("darkframe",0,cv_im.height + 3*(frame.height+ts) + ts) cv.MoveWindow("grey_normalized",0,cv_im.height + 4*(frame.height+ts) + ts) #cv.MoveWindow("grey2",0,cv_im.height + 5*(frame.height+ts) + ts) cv.MoveWindow("grey_orig",0,cv_im.height + 5*(frame.height+ts) + ts) cv.WaitKey(10)
slitscanner.addFrame(rot) # draw crosshair (debug output) draw = ImageDraw.Draw(rot) draw.line((0, img.size[1] / 2, img.size[0], img.size[1] / 2), fill=128) draw.line((img.size[0] / 2, 0, img.size[0] / 2, img.size[1]), fill=128) del draw # visual debug/preview output via opencv if display: cv_img = cv.CreateImageHeader(rot.size, cv.IPL_DEPTH_8U, 3) cv.SetData(cv_img, rot.tostring()) cv.CvtColor(cv_img, cv_img, cv.CV_RGB2BGR) cv.ShowImage("current", cv_img) scan_img = slitscanner.getImage() cv_scan_img = cv.CreateImageHeader(scan_img.size, cv.IPL_DEPTH_8U, 3) cv.SetData(cv_scan_img, scan_img.tostring()) cv.CvtColor(cv_scan_img, cv_scan_img, cv.CV_RGB2BGR) cv.ShowImage("scan", cv_scan_img) cv.WaitKey(10) elif write_log_files: slitscanner.addButDontScanFrame() if write_log_files: f.write( "%d, %f, %f, %f\n" % (slitscanner.getPixelInScan(), track.getLat(), track.getLon(), track.getDistance() / 1000) )