sivi 1 year ago
parent
commit
8bc2688bb8
100 changed files with 706 additions and 0 deletions
  1. 8 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/.gitignore
  2. 12 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/PyQT登录.iml
  3. 6 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/inspectionProfiles/Project_Default.xml
  4. 6 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/inspectionProfiles/profiles_settings.xml
  5. 7 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/misc.xml
  6. 8 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/modules.xml
  7. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.DS_Store
  8. 8 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/.gitignore
  9. 6 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/inspectionProfiles/profiles_settings.xml
  10. 7 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/misc.xml
  11. 8 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/modules.xml
  12. 6 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/vcs.xml
  13. 12 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/手写数字识别.iml
  14. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/2.bmp
  15. 67 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitAI.py
  16. 17 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitApp.py
  17. 36 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitDev.py
  18. 84 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitForm.py
  19. 21 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitModule.py
  20. 82 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitUI.py
  21. 15 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/Main.py
  22. 0 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/__init__.py
  23. 0 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/data/__init__.py
  24. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/data/models.lenet
  25. 2 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/scripts-3.6/digit.bat
  26. 2 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digit.bat
  27. 1 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digit.py
  28. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/.DS_Store
  29. 16 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitApp.py
  30. 34 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitForm.py
  31. 68 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitUI1.py
  32. 143 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitUI1.ui
  33. 15 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/Main.py
  34. 0 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__init__.py
  35. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitAI.cpython-311.pyc
  36. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitAI.cpython-36.pyc
  37. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-311.pyc
  38. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-36.pyc
  39. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-37.pyc
  40. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitDev.cpython-311.pyc
  41. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitDev.cpython-36.pyc
  42. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-311.pyc
  43. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-36.pyc
  44. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-37.pyc
  45. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitModule.cpython-311.pyc
  46. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitModule.cpython-36.pyc
  47. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI.cpython-311.pyc
  48. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI.cpython-36.pyc
  49. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI1.cpython-311.pyc
  50. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI1.cpython-37.pyc
  51. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-311.pyc
  52. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-36.pyc
  53. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-37.pyc
  54. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-311.pyc
  55. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-36.pyc
  56. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-37.pyc
  57. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/loginUI.cpython-311.pyc
  58. 0 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/python3
  59. 1 0
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/tool.bat
  60. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/项目文件的关系.pptx
  61. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/._PyQT登录
  62. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._.DS_Store
  63. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._2.bmp
  64. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._build
  65. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digit.bat
  66. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digit.py
  67. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digitapp
  68. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._项目文件的关系.pptx
  69. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/._lib
  70. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/._scripts-3.6
  71. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/._digitapp
  72. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitAI.py
  73. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitApp.py
  74. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitDev.py
  75. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitForm.py
  76. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitModule.py
  77. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitUI.py
  78. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._Main.py
  79. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/.___init__.py
  80. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._data
  81. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/data/.___init__.py
  82. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/data/._models.lenet
  83. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/scripts-3.6/._digit.bat
  84. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._.DS_Store
  85. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitApp.py
  86. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitForm.py
  87. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitUI1.ui
  88. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._Main.py
  89. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/.___init__.py
  90. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/.___pycache__
  91. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._tool.bat
  92. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitAI.cpython-36.pyc
  93. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitApp.cpython-36.pyc
  94. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitDev.cpython-36.pyc
  95. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitForm.cpython-36.pyc
  96. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitModule.cpython-36.pyc
  97. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitUI.cpython-36.pyc
  98. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._Main.cpython-36.pyc
  99. BIN
      作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/.___init__.cpython-36.pyc
  100. 8 0
      作业/20200404117马锋/Day6 20200404117马锋/卷积神经网络训练/.idea/.gitignore

+ 8 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/

+ 12 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/PyQT登录.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="PyDocumentationSettings">
+    <option name="format" value="PLAIN" />
+    <option name="myDocStringFormat" value="Plain" />
+  </component>
+</module>

+ 6 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
+  </profile>
+</component>

+ 6 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/inspectionProfiles/profiles_settings.xml

@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>

+ 7 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/misc.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
+</project>

+ 8 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/PyQT登录.iml" filepath="$PROJECT_DIR$/.idea/PyQT登录.iml" />
+    </modules>
+  </component>
+</project>

BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.DS_Store


+ 8 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/

+ 6 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/inspectionProfiles/profiles_settings.xml

@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>

+ 7 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/misc.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JavaScriptSettings">
+    <option name="languageLevel" value="ES6" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
+</project>

+ 8 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/手写数字识别.iml" filepath="$PROJECT_DIR$/.idea/手写数字识别.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>

+ 12 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/.idea/手写数字识别.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="PyDocumentationSettings">
+    <option name="format" value="PLAIN" />
+    <option name="myDocStringFormat" value="Plain" />
+  </component>
+</module>

BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/2.bmp


+ 67 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitAI.py

@@ -0,0 +1,67 @@
+import cv2
+import numpy as np
+import torch
+from .DigitModule import LeNet
+import os
+
+cur_dir = os.path.dirname(__file__)
+mod_file = os.path.join(cur_dir,"data/models.lenet")
+
+class DigitRecognizier:
+    def __init__(self):
+        super(DigitRecognizier, self).__init__()
+        self.CUDA = torch.cuda.is_available()
+        self.net = LeNet(10)
+        if self.CUDA:
+            self.net.cuda()
+        state = torch.load(mod_file)
+        self.net.load_state_dict(state)
+    
+
+    def pre_image(self, img):
+        # 大小
+        img = cv2.resize(img, (28,28))
+        # 灰度
+        img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+        # 小数类型
+        img = img.astype("float32")
+        # 逆转(F-> B, B->F)
+        img = 255.0 -img
+        # 去噪
+        img[img <= 150] = 0
+        cv2.imwrite("g.png", img.astype("uint8"))
+        # 转换为张量
+        img = torch.from_numpy(img).clone()
+        # 转换为N C H W
+        
+        return img
+
+    
+    def recognize(self, img):
+        result = []  # (数字,概率)
+        # 根据模型计算输出
+        p_img = self.pre_image(img)
+        if self.CUDA:
+            p_img = p_img.cuda()
+
+        predict = self.net.forward(p_img.view(1, 1, 28, 28))
+
+        pred_prob = torch.nn.functional.softmax(predict, dim=1)
+        # 计算在gpu,速度快
+        pred_prob = pred_prob[0]
+        # pred_prob = torch.squeeze(pred_prob, 0)
+        # pred_prob = pred_prob.view((pred_prob.shape[1]))
+        # 找出最大概率及其下标,判定概率
+        top1 = torch.argmax(pred_prob)
+        pro1 = pred_prob[top1]
+        result.append((top1.cpu().detach().numpy(), pro1.cpu().detach().numpy()))
+        if pro1 < 1.0:
+            # 把top1置为0,再找最大值
+            pred_prob[top1] = 0.0
+            top2 = torch.argmax(pred_prob)
+            pro2 = pred_prob[top2]
+            result.append((top2.cpu().detach().numpy(), pro2.cpu().detach().numpy()))
+
+
+        return result # 返回长度为10的概率向量
+

+ 17 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitApp.py

@@ -0,0 +1,17 @@
+"""
+"""
+from PyQt5.QtWidgets import QApplication
+from .DigitForm import DigitForm
+import sys 
+
+class DigitApp(QApplication):
+    """
+    """
+    def __init__(self):
+        """
+        """
+        super(DigitApp, self).__init__(sys.argv)
+        # 创建应用主窗体
+        self.dlg = DigitForm()
+        self.dlg.show()
+    

+ 36 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitDev.py

@@ -0,0 +1,36 @@
+from PyQt5.QtCore import QThread, pyqtSignal
+import cv2
+
+class DigitDev(QThread):
+    
+    signal_video = pyqtSignal(int, int, int, bytes)
+
+    def __init__(self):
+        super(DigitDev, self).__init__()
+        self.is_over = False
+        # 初始化设备
+        self.dev = cv2.VideoCapture(0, cv2.CAP_DSHOW)
+
+
+    def run(self):
+        while not self.is_over:
+            # 图像抓取
+            status, image = self.dev.read()
+            # 状态判定
+            if not status:
+                self.dev.release()
+                self.exit(0)
+            # 如果抓取图像成功,发送
+            shape = image.shape
+            image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+            self.signal_video.emit(shape[0], shape[1], shape[2], image.tobytes())
+            # 视觉暂停
+            QThread.usleep(100000)
+
+    def close(self):
+        self.is_over = True
+        while self.isRunning():
+            pass
+        # 释放设备
+        if self.dev.isOpened():
+            self.dev.release()

+ 84 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitForm.py

@@ -0,0 +1,84 @@
+from PyQt5.QtWidgets import QDialog
+from PyQt5.QtGui import QImage, QPixmap
+import sys
+from .DigitUI import Ui_Digit
+from .DigitDev import DigitDev
+from .DigitAI import DigitRecognizier
+import cv2
+import numpy as np
+
+class DigitForm(QDialog):
+    def __init__(self):
+        super(DigitForm, self).__init__()
+        # 加载UI(先设计好)
+        # 创建对象
+        self.ui = Ui_Digit()
+        # 使用setupUi绑定对话框(父窗体)
+        self.ui.setupUi(self)
+        # AI识别对象
+        self.reco = DigitRecognizier()
+        # 创建视频对象
+        self.dev = DigitDev()
+        self.dev.signal_video.connect(self.show_video)
+        self.dev.start()
+
+
+
+    # 覆盖QDialog原来两个我们不需要的默认功能
+    def keyPressEvent(self, e):
+        pass
+
+
+    def closeEvent(self, e):
+        # 完成一些需要的释放工作
+        self.dev.close()
+        sys.exit(0)
+
+    # UI中的两个槽函数
+    def capture_image(self):
+        # 抓取图像
+        self.capture_data = self.buffer_data
+        self.capture_shape = self.buffer_shape
+        # 显示抓取的图像
+        # byte -> QImage
+        h, w, ch = self.capture_shape
+        image = QImage(self.capture_data, w, h, w*ch, QImage.Format_BGR888)
+        # QImage -> QPixmap
+        pixmap = QPixmap.fromImage(image)
+        # QPixmap -> QLabel 
+        self.ui.lbl_image.setPixmap(pixmap)
+        self.ui.lbl_image.setScaledContents(True)
+
+    def digit_recognize(self):
+        # 已知
+        # self.capture_data
+        # self.capture_shape
+        # 准备:训练好的手写字符模型:models.lenet:LeNet-5
+        # 实现与模型一致的 神经网络结构(层数,层类型,每层参数一致)
+        # 利用神经网络结构,识别图片
+        image = np.ndarray(
+            shape=self.capture_shape,    # 构建图像矩阵的形状
+            dtype=np.uint8,
+            buffer=self.buffer_data
+        )
+
+        result = self.reco.recognize(image)
+        self.ui.lbl_top1.setText(F"<font size=20 color=red><b><strong>{result[0][0]}</strong><b></font>")
+        self.ui.lbl_prob1.setText(F"{result[0][1]:3.2f}")
+        if len(result) == 2:
+            self.ui.lbl_top2.setText(F"{result[1][0]}")
+            self.ui.lbl_prob2.setText(F"{result[1][1]:3.2f}")
+        else:
+            self.ui.lbl_top2.setText("--")
+            self.ui.lbl_prob2.setText("--")
+
+    def show_video(self, h, w, ch, data):
+        self.buffer_data = data
+        self.buffer_shape = (h, w, ch)
+        # byte -> QImage
+        image = QImage(data, w, h, w*ch, QImage.Format_RGB888)
+        # QImage -> QPixmap
+        pixmap = QPixmap.fromImage(image)
+        # QPixmap -> QLabel 
+        self.ui.lbl_video.setPixmap(pixmap)
+        self.ui.lbl_video.setScaledContents(True)

+ 21 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitModule.py

@@ -0,0 +1,21 @@
+import torch.nn as nn     # 神经网络的层的实现:卷积层
+import torch.nn.functional as fu
+
+class LeNet(nn.Module):
+    def __init__(self, cls_num=10):
+        super(LeNet, self).__init__()
+        self.conv1 = nn.Conv2d(1, 6, 5, padding=2)  
+        self.conv2 = nn.Conv2d(6, 16, 5)
+        self.fc1 = nn.Linear(16 * 5 * 5,  120)
+        self.fc2 = nn.Linear(120, 84) 
+        self.fc3 = nn.Linear(84, cls_num)
+    
+    def forward(self, x):
+        y = fu.max_pool2d(fu.relu(self.conv1(x)), (2, 2))
+        y = fu.max_pool2d(fu.relu(self.conv2(y)), (2, 2))
+        # 格式转换
+        y = y.view(y.size()[0], -1)
+        y = fu.relu(self.fc1(y))
+        y = fu.relu(self.fc2(y))
+        y = self.fc3(y)
+        return y

+ 82 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/DigitUI.py

@@ -0,0 +1,82 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'Digit.ui'
+#
+# Created by: PyQt5 UI code generator 5.14.1
+#
+# WARNING! All changes made in this file will be lost!
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Digit(object):
+    def setupUi(self, Digit):
+        Digit.setObjectName("Digit")
+        Digit.resize(921, 259)
+        Digit.setStyleSheet("QPushButton{\n"
+"    border-style:solid;\n"
+"    border-width:1px;\n"
+"    border-radius:8px;\n"
+"    border-top-color:#FFFFFF;\n"
+"    border-bottom-color:#888888;\n"
+"    border-left-color:#FFFFFF;\n"
+"    border-right-color:#888888;\n"
+"}\n"
+"QLabel#lbl_top1,#lbl_top2{\n"
+"    color:red;\n"
+"    font-size:24px;\n"
+"}\n"
+"QLabel#lbl_prob1,#lbl_prob2{\n"
+"    color:blue;\n"
+"}")
+        self.lbl_video = QtWidgets.QLabel(Digit)
+        self.lbl_video.setGeometry(QtCore.QRect(10, 10, 320, 240))
+        self.lbl_video.setFrameShape(QtWidgets.QFrame.Box)
+        self.lbl_video.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.lbl_video.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_video.setObjectName("lbl_video")
+        self.btn_capture = QtWidgets.QPushButton(Digit)
+        self.btn_capture.setGeometry(QtCore.QRect(340, 120, 93, 28))
+        self.btn_capture.setObjectName("btn_capture")
+        self.lbl_image = QtWidgets.QLabel(Digit)
+        self.lbl_image.setGeometry(QtCore.QRect(450, 77, 160, 120))
+        self.lbl_image.setFrameShape(QtWidgets.QFrame.Box)
+        self.lbl_image.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_image.setObjectName("lbl_image")
+        self.btn_recognize = QtWidgets.QPushButton(Digit)
+        self.btn_recognize.setGeometry(QtCore.QRect(630, 120, 92, 28))
+        self.btn_recognize.setObjectName("btn_recognize")
+        self.lbl_top1 = QtWidgets.QLabel(Digit)
+        self.lbl_top1.setGeometry(QtCore.QRect(740, 60, 60, 60))
+        self.lbl_top1.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_top1.setObjectName("lbl_top1")
+        self.lbl_top2 = QtWidgets.QLabel(Digit)
+        self.lbl_top2.setGeometry(QtCore.QRect(740, 150, 60, 60))
+        self.lbl_top2.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_top2.setObjectName("lbl_top2")
+        self.lbl_prob1 = QtWidgets.QLabel(Digit)
+        self.lbl_prob1.setGeometry(QtCore.QRect(830, 74, 80, 28))
+        self.lbl_prob1.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_prob1.setObjectName("lbl_prob1")
+        self.lbl_prob2 = QtWidgets.QLabel(Digit)
+        self.lbl_prob2.setGeometry(QtCore.QRect(830, 165, 80, 26))
+        self.lbl_prob2.setAlignment(QtCore.Qt.AlignCenter)
+        self.lbl_prob2.setObjectName("lbl_prob2")
+
+        self.retranslateUi(Digit)
+        self.btn_capture.clicked.connect(Digit.capture_image)
+        self.btn_recognize.clicked.connect(Digit.digit_recognize)
+        QtCore.QMetaObject.connectSlotsByName(Digit)
+
+    def retranslateUi(self, Digit):
+        _translate = QtCore.QCoreApplication.translate
+        Digit.setWindowTitle(_translate("Digit", "手写数字识别程序"))
+        self.lbl_video.setText(_translate("Digit", "<font size=20 color=blue><b>视频显示区域</b></font>"))
+        self.btn_capture.setText(_translate("Digit", "抓取图像"))
+        self.lbl_image.setText(_translate("Digit", "抓取的图像"))
+        self.btn_recognize.setText(_translate("Digit", "数组识别"))
+        self.lbl_top1.setText(_translate("Digit", "top1"))
+        self.lbl_top2.setText(_translate("Digit", "top2"))
+        self.lbl_prob1.setText(_translate("Digit", "prob1"))
+        self.lbl_prob2.setText(_translate("Digit", "prob2"))

+ 15 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/Main.py

@@ -0,0 +1,15 @@
+"""
+Date: 2020-05-22
+Author: Louis Young
+Usage: 主程序(抓取视频,并截图,然后调用数字识别模块,完成手写数字的智能识别)
+"""
+
+from .DigitApp import DigitApp
+import sys
+
+# 1. 创建应用
+app_digit = DigitApp() 
+# 2. 启动应用的消息监控循环
+status = app_digit.exec()
+# 3. 应用结束的时候,返回状态码给系统
+sys.exit(status)

+ 0 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/__init__.py


+ 0 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/data/__init__.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/lib/digitapp/data/models.lenet


+ 2 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/build/scripts-3.6/digit.bat

@@ -0,0 +1,2 @@
+@python -m digitapp.Main
+

+ 2 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digit.bat

@@ -0,0 +1,2 @@
+@python -m digitapp.Main
+

+ 1 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digit.py

@@ -0,0 +1 @@
+import digitapp.Main

BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/.DS_Store


+ 16 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitApp.py

@@ -0,0 +1,16 @@
+"""
+"""
+from PyQt5.QtWidgets import QApplication
+from .DigitForm import DigitForm
+import sys
+
+class DigitApp(QApplication):
+    """
+    """
+    def __init__(self):
+        """
+        """
+        super(DigitApp, self).__init__(sys.argv)
+        # 创建应用主窗体
+        self.dlg = DigitForm()
+        self.dlg.show()

+ 34 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitForm.py

@@ -0,0 +1,34 @@
+from PyQt5.QtWidgets import QDialog
+from PyQt5.QtGui import QImage, QPixmap
+import sys
+from .DigitUI1 import Ui_Digit
+
+import numpy as np
+
+class DigitForm(QDialog):
+    def __init__(self):
+        super(DigitForm, self).__init__()
+        # 加载UI(先设计好)
+        # 创建对象
+        self.ui = Ui_Digit()
+        # 使用setupUi绑定对话框(父窗体)
+        self.ui.setupUi(self)
+
+
+
+
+
+    def capture_image(self):
+        if (self.ui.lbl_user.toPlainText() == 'glj') & (self.ui.lbl_pwd.toPlainText() == '2458') :
+            self.ui.lbl_result.setText('欢迎(~ ̄▽ ̄)~')
+        else:
+            self.ui.lbl_result.setText('How Are You ?')
+
+
+
+
+
+
+
+
+

+ 68 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitUI1.py

@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'DigitUI1.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.9
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Digit(object):
+    def setupUi(self, Digit):
+        Digit.setObjectName("Digit")
+        Digit.resize(653, 166)
+        Digit.setStyleSheet("QPushButton{\n"
+"    border-style:solid;\n"
+"    border-width:1px;\n"
+"    border-radius:8px;\n"
+"    border-top-color:#FFFFFF;\n"
+"    border-bottom-color:#888888;\n"
+"    border-left-color:#FFFFFF;\n"
+"    border-right-color:#888888;\n"
+"}\n"
+"QLabel#lbl_top1,#lbl_top2{\n"
+"    color:red;\n"
+"    font-size:24px;\n"
+"}\n"
+"QLabel#lbl_prob1,#lbl_prob2{\n"
+"    color:blue;\n"
+"}")
+        self.btn_recognize = QtWidgets.QPushButton(Digit)
+        self.btn_recognize.setGeometry(QtCore.QRect(300, 200, 92, 28))
+        self.btn_recognize.setObjectName("btn_recognize")
+        self.label = QtWidgets.QLabel(Digit)
+        self.label.setGeometry(QtCore.QRect(220, 10, 81, 41))
+        self.label.setObjectName("label")
+        self.lbl_user = QtWidgets.QTextEdit(Digit)
+        self.lbl_user.setGeometry(QtCore.QRect(300, 20, 111, 31))
+        self.lbl_user.setObjectName("lbl_user")
+        self.label_2 = QtWidgets.QLabel(Digit)
+        self.label_2.setGeometry(QtCore.QRect(230, 70, 60, 16))
+        self.label_2.setObjectName("label_2")
+        self.lbl_pwd = QtWidgets.QTextEdit(Digit)
+        self.lbl_pwd.setGeometry(QtCore.QRect(300, 60, 111, 31))
+        self.lbl_pwd.setObjectName("lbl_pwd")
+        self.btn_login = QtWidgets.QPushButton(Digit)
+        self.btn_login.setGeometry(QtCore.QRect(270, 110, 113, 32))
+        self.btn_login.setObjectName("btn_login")
+        self.lbl_result = QtWidgets.QLabel(Digit)
+        self.lbl_result.setGeometry(QtCore.QRect(500, 50, 111, 41))
+        self.lbl_result.setText("")
+        self.lbl_result.setObjectName("lbl_result")
+        # self.lbl_result.
+
+        self.retranslateUi(Digit)
+        self.btn_login.clicked.connect(Digit.capture_image) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(Digit)
+
+    def retranslateUi(self, Digit):
+        _translate = QtCore.QCoreApplication.translate
+        Digit.setWindowTitle(_translate("Digit", "用户登陆系统"))
+        self.btn_recognize.setText(_translate("Digit", "账户密码识别"))
+        self.label.setText(_translate("Digit", "用户名:"))
+        self.label_2.setText(_translate("Digit", "密  码:"))
+        self.btn_login.setText(_translate("Digit", "登录"))

+ 143 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/DigitUI1.ui

@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Digit</class>
+ <widget class="QDialog" name="Digit">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>653</width>
+    <height>166</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>手写数字识别程序</string>
+  </property>
+  <property name="styleSheet">
+   <string notr="true">QPushButton{
+	border-style:solid;
+	border-width:1px;
+	border-radius:8px;
+	border-top-color:#FFFFFF;
+	border-bottom-color:#888888;
+	border-left-color:#FFFFFF;
+	border-right-color:#888888;
+}
+QLabel#lbl_top1,#lbl_top2{
+	color:red;
+	font-size:24px;
+}
+QLabel#lbl_prob1,#lbl_prob2{
+	color:blue;
+}</string>
+  </property>
+  <widget class="QPushButton" name="btn_recognize">
+   <property name="geometry">
+    <rect>
+     <x>300</x>
+     <y>200</y>
+     <width>92</width>
+     <height>28</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>数组识别</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label">
+   <property name="geometry">
+    <rect>
+     <x>220</x>
+     <y>10</y>
+     <width>81</width>
+     <height>41</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>用户名:</string>
+   </property>
+  </widget>
+  <widget class="QTextEdit" name="lbl_user">
+   <property name="geometry">
+    <rect>
+     <x>300</x>
+     <y>20</y>
+     <width>111</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_2">
+   <property name="geometry">
+    <rect>
+     <x>230</x>
+     <y>70</y>
+     <width>60</width>
+     <height>16</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>密  码:</string>
+   </property>
+  </widget>
+  <widget class="QTextEdit" name="lbl_pwd">
+   <property name="geometry">
+    <rect>
+     <x>300</x>
+     <y>60</y>
+     <width>111</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="btn_login">
+   <property name="geometry">
+    <rect>
+     <x>270</x>
+     <y>110</y>
+     <width>113</width>
+     <height>32</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>登录</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="lbl_result">
+   <property name="geometry">
+    <rect>
+     <x>460</x>
+     <y>30</y>
+     <width>181</width>
+     <height>111</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string/>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>btn_login</sender>
+   <signal>clicked()</signal>
+   <receiver>Digit</receiver>
+   <slot>capture_image()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>326</x>
+     <y>125</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>326</x>
+     <y>82</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>capture_image()</slot>
+  <slot>digit_recognize()</slot>
+ </slots>
+</ui>

+ 15 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/Main.py

@@ -0,0 +1,15 @@
+"""
+Date: 2020-05-22
+Author: Louis Young
+Usage: 主程序(抓取视频,并截图,然后调用数字识别模块,完成手写数字的智能识别)
+"""
+
+from .DigitApp import DigitApp
+import sys
+
+# 1. 创建应用
+app_digit = DigitApp() 
+# 2. 启动应用的消息监控循环
+status = app_digit.exec()
+# 3. 应用结束的时候,返回状态码给系统
+sys.exit(status)

+ 0 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__init__.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitAI.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitAI.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitApp.cpython-37.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitDev.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitDev.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitForm.cpython-37.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitModule.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitModule.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI1.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/DigitUI1.cpython-37.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/Main.cpython-37.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-311.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/__init__.cpython-37.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/__pycache__/loginUI.cpython-311.pyc


+ 0 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/python3


+ 1 - 0
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/digitapp/tool.bat

@@ -0,0 +1 @@
+@pyuic5 -o DigitUI.py  Digit.ui

BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/PyQT登录/项目文件的关系.pptx


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/._PyQT登录


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._.DS_Store


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._2.bmp


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._build


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digit.bat


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digit.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._digitapp


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/._项目文件的关系.pptx


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/._lib


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/._scripts-3.6


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/._digitapp


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitAI.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitApp.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitDev.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitForm.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitModule.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._DigitUI.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._Main.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/.___init__.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/._data


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/data/.___init__.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/lib/digitapp/data/._models.lenet


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/build/scripts-3.6/._digit.bat


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._.DS_Store


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitApp.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitForm.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._DigitUI1.ui


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._Main.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/.___init__.py


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/.___pycache__


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/._tool.bat


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitAI.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitApp.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitDev.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitForm.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitModule.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._DigitUI.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/._Main.cpython-36.pyc


BIN
作业/20200404117马锋/Day5 20200404117马锋/PyQT登录/__MACOSX/PyQT登录/digitapp/__pycache__/.___init__.cpython-36.pyc


+ 8 - 0
作业/20200404117马锋/Day6 20200404117马锋/卷积神经网络训练/.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/

Some files were not shown because too many files changed in this diff