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("下")
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() #关闭所有窗口
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() # 关闭所有窗口