Ejemplo n.º 1
0
    def button_recognition_click(self):

        descirptor_in_use = abs(self.fourier_result)
        fd_test = np.zeros((1, 31))
        temp = descirptor_in_use[1]
        for k in range(1, len(descirptor_in_use)):
            fd_test[0, k - 1] = int(100 * descirptor_in_use[k] / temp)
        efd_test = np.zeros((1, 15))
        for k in range(1, len(self.efd_result)):
            temp = np.sqrt(self.efd_result[k][0]**2 + self.efd_result[k][1]**2
                           ) + np.sqrt(self.efd_result[k][2]**2 +
                                       self.efd_result[k][3]**2)
            efd_test[0, k - 1] = (int(1000 * temp))
        test_knn, test_svm = cf.test_fd(fd_test)
        print("test_knn =", test_knn)
        print("test_svm =", test_svm)
        test_knn_efd, test_svm_efd = cf.test_efd(efd_test)
        print("test_knn_efd =", test_knn_efd)
        print("test_svm_efd =", test_svm_efd)
        num = [0] * 11
        num[test_knn[0]] += 1
        num[test_svm[0]] += 1
        num[test_knn_efd[0]] += 1
        num[test_svm_efd[0]] += 1
        res = -1
        for i in range(1, 11):
            if num[i] >= 2:
                res = i
                break
        if res == 10:
            res = 0
        print(res)
        self.label_show_recognition.setText(str(res))
 def button_recognition_click(self):
     descirptor_in_use = self.hog_result
     fd_test = np.zeros((1, 70))
     temp = descirptor_in_use[1]
     for k in range(1, 70):
         fd_test[0, k - 1] = int(100 * descirptor_in_use[k])
     print("descirptor_in_use", fd_test)
     test_svm = cf.test_fd(fd_test)
     print("test_svm =", test_svm)
     print(test_svm[0])
     if test_svm[0] == 1:
         self.label_show_recognition.setText("右")
     elif test_svm[0] == 2:
         self.label_show_recognition.setText("左")
     elif test_svm[0] == 3:
         self.label_show_recognition.setText("上")
     else:
         self.label_show_recognition.setText("下")
Ejemplo n.º 3
0
            x0 -= 5
        elif key == ord('q'):
            break
        elif key == ord('s'):
            path = './' + 'image_example' + '/'
            name = str(cnt)
            cv2.imwrite(path + 'roi_sun.png', roi)
            cnt += 1
            #cv2.imwrite(path + name+'.png',ret)
        elif key == ord('p'):
            descirptor_in_use = abs(fourier_result)
            fd_test = np.zeros((1, 31))
            temp = descirptor_in_use[1]
            for k in range(1, len(descirptor_in_use)):
                fd_test[0, k - 1] = int(100 * descirptor_in_use[k] / temp)
            efd_test = np.zeros((1, 15))
            for k in range(1, len(efd_result)):
                temp = np.sqrt(efd_result[k][0]**2 +
                               efd_result[k][1]**2) + np.sqrt(
                                   efd_result[k][2]**2 + efd_result[k][3]**2)
                efd_test[0, k - 1] = (int(1000 * temp))
            test_knn, test_svm = cf.test_fd(fd_test)
            print("test_knn =", test_knn)
            print("test_svm =", test_svm)
            test_knn_efd, test_svm_efd = cf.test_efd(efd_test)
            print("test_knn_efd =", test_knn_efd)
            print("test_svm_efd =", test_svm_efd)
        cv2.imshow('frame', frame)  #播放摄像头的内容
    cap.release()
    cv2.destroyAllWindows()  #关闭所有窗口
Ejemplo n.º 4
0
        if IS_SHOW_CV_WINDOW:
            cv2.imshow("roi", roi)  # 显示手势框图
            cv2.imshow("frame", frame)
            cv2.imshow("ret", ret)
        key = cv2.waitKey(1) & 0xFF  # 按键判断并进行一定的调整 # 按'q'键退出录像
        if key == ord('q'):
            break
        descirptor_in_use = abs(fourier_result)
        fd_test = np.zeros((1, 31))
        temp = descirptor_in_use[1]
        for k in range(1, len(descirptor_in_use)):
            fd_test[0, k - 1] = int(100 * descirptor_in_use[k] / temp)
        efd_test = np.zeros((1, 15))
        for k in range(1, len(efd_result)):
            temp = np.sqrt(efd_result[k][0]**2 +
                           efd_result[k][1]**2) + np.sqrt(efd_result[k][2]**2 +
                                                          efd_result[k][3]**2)
            efd_test[0, k - 1] = (int(1000 * temp))
        test_svm = cf.test_fd(fd_test)
        test_svm_efd = cf.test_efd(efd_test)
        print("test_svm:", test_svm[0], ", test_svm_efd:", test_svm_efd[0])
        if len(test_svm) == 0 or len(test_svm_efd) == 0:
            continue
        #
        cmd = int(test_svm)
        if RASPI_OS:
            scc.cmd_handle(cmd)

    cap.release()
    cv2.destroyAllWindows()  # 关闭所有窗口