示例#1
0
    def _test_remove_reddot(self, img):

        f0 = CalibrateRedDotFilter()
        f1 = SeparateObjectFilter()
        meta_img = MetaImg(img, {})
        f0.filter(meta_img)
        f1.filter(meta_img)
        self.assertLess(np.sum(meta_img.meta['mask']) / 255, 40)
示例#2
0
 def test_no_red_dot(self):
     im3 = cv2.imread('tests/lena.jpg', cv.CV_LOAD_IMAGE_COLOR)
     f1 = SeparateObjectFilter()
     meta_img = MetaImg(im3, {})
     try:
         f1.filter(meta_img)
     except:
         self.fail()
示例#3
0
    def test_measure(self):
        im3 = cv2.imread('tests/reddot_seed.jpg', cv.CV_LOAD_IMAGE_COLOR)
        f1 = CalibrateRedDotFilter({'dims': (4, 4), 'dot_diameter_in_mm': 5})
        f2 = SeparateObjectFilter()

        meta_img = MetaImg(im3, {})
        f1(meta_img)
        f2(meta_img)
        print meta_img.meta['ellipsis']
示例#4
0
 def test_speed(self):
     im3 = cv2.imread('tests/reddot_seed.jpg', cv.CV_LOAD_IMAGE_COLOR)
     f1 = SeparateObjectFilter()
     t = time()
     for i in xrange(5):
         meta_img = MetaImg(im3, {})
         f1.filter(meta_img)
     t2 = time()
     self.assertLess(t2 - t, 5)
示例#5
0
文件: app.py 项目: yakxxx/seed-aquire
 def __init__(self, video_src=0):
     self.cam = cap = cv2.VideoCapture(video_src)
     #        cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 320)
     #        cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 200)
     ret, self.frame = self.cam.read()
     cv2.namedWindow('win')
     self.calib_filter = CalibrateChessFilter({
         'dims': (4, 4),
         'square_size_in_mm': 5
     })
     self.sep_filter = SeparateObjectFilter()
示例#6
0
    def full_fitlers_test(self):
        im3 = cv2.imread('tests/reddot_seed.jpg', cv.CV_LOAD_IMAGE_COLOR)
        f1 = CalibrateRedDotFilter({'dims': (4, 4), 'dot_diameter_in_mm': 5})
        f2 = SeparateObjectFilter()

        t = time()
        for i in xrange(5):
            meta_img = MetaImg(np.array(im3), {})
            f1.filter(meta_img)
            f2.filter(meta_img)
        t2 = time()
        self.assertLess(t2 - t, 5)  #at least 2 frames for second
示例#7
0
    def test_bg_probability(self):
        im3 = cv2.imread('tests/reddot_seed.jpg', cv.CV_LOAD_IMAGE_COLOR)
        f1 = SeparateObjectFilter()
        meta_img = MetaImg(im3, {})
        hsv = cv2.cvtColor(meta_img.img, cv.CV_BGR2HSV)
        mask = f1._create_bg_probe_mask(im3)

        probab = f1._bg_probability(mask, hsv[:, :, 2])
        _, ret = cv2.threshold((probab * 10000).astype(np.uint8), 70, 255,
                               cv2.THRESH_BINARY_INV)
        cv2.imshow('asd1', ret)
        probab += f1._bg_probability(mask, hsv[:, :, 0])

        probab *= 10000
        probab = probab.astype(np.uint8)
        print np.max(probab)
        _, ret = cv2.threshold(probab, 140, 255, cv2.THRESH_BINARY_INV)
示例#8
0
 def __init__(self, video_widget, conf):
     super(VideoThread, self).__init__()
     self.cam_num = conf.get('cam_num', 0)
     self.red_dot_diameter = conf.get('dot_diameter_in_mm', 1)
     self._frame_count = 0
     self._show_detail = False
     self._killed = False
     self._show_mask = False
     self._prev_grab_res = (1280, 1024)
     self._snap_grab_res = (2592, 1944)
     self.video_widget = video_widget
     self._cam_mutex = Lock()
     
     self.calib_filter = CalibrateRedDotFilter({'dot_diameter_in_mm': self.red_dot_diameter})
     self.sep_filter = SeparateObjectFilter()
     
     self._timer = QTimer()
     self._timer.timeout.connect(self.on_frame)
示例#9
0
 def test_elipse(self):
     im3 = cv2.imread('tests/reddot_seed.jpg', cv.CV_LOAD_IMAGE_COLOR)
     f1 = SeparateObjectFilter()
     meta_img = MetaImg(im3, {})
     f1.filter(meta_img)
     self.assertTrue(meta_img.meta.get('ellipsis', False))
示例#10
0
 def test_probe_mask(self):
     f = SeparateObjectFilter()
     im3 = cv2.imread('tests/reddot.jpg', cv.CV_LOAD_IMAGE_COLOR)
     mask = f._create_bg_probe_mask(im3)
     self.assertGreater(np.sum(mask) / 255, 400)
示例#11
0
 def test_no_object(self):
     im3 = cv2.imread('tests/no_object.jpg', cv.CV_LOAD_IMAGE_COLOR)
     f1 = SeparateObjectFilter()
     meta_img = MetaImg(im3, {})
     #        try:
     f1.filter(meta_img)