├── test_images ├── 1.jpg ├── 2.jpg └── 3.jpg ├── images ├── 0000x_0.png ├── 0012b_0.png ├── 0029j_0.png ├── 0029m_0.png ├── 0038j_0.png ├── 0076s_0.png ├── 0100a_0.png ├── 0128b_0.png ├── 0202r_0.png ├── 0248b_0.png ├── 024_a_0.png ├── 0410j_0.png ├── 0410k_0.png ├── 0436p_0.png ├── 0497j_0.png ├── 0515a_0.png ├── 0657e_0.png ├── 0861a_0.png ├── 0890x_0.png ├── 1001a_0.png ├── 1004j_0.png ├── 1005x_0.png ├── 1043b_0.png ├── 1049j_0.png ├── 1118a_0.png ├── 1161a_0.png ├── 1165k_0.png ├── 1287b_0.png ├── 1406a_0.png ├── 1416j_0.png ├── 1513e_0.png ├── 1650s_0.png ├── 1658j_0.png ├── 1775j_0.png ├── 2022j_0.png ├── 2177j_0.png ├── 2202a_0.png ├── 2202b_0.png ├── 2220a_0.png ├── 2220b_0.png ├── 2282c_0.png ├── 2284a_0.png ├── 2284c_0.png ├── 2284e_0.png ├── 2284j_0.png ├── 236_a_0.png ├── 2389p_0.png ├── 2531r_0.png ├── 2616k_0.png ├── 2821p_0.png ├── 2848a_0.png ├── 2848c_0.png ├── 2848e_0.png ├── 2848j_0.png ├── 2877b_0.png ├── 3000x_0.png ├── 3003a_0.png ├── 3003j_0.png ├── 3010a_0.png ├── 3261p_0.png ├── 3536x_0.png ├── 3632k_0.png ├── 3890p_0.png ├── 4000j_0.png ├── 4000k_0.png ├── 4051a_0.png ├── 4104j_0.png ├── 4363p_0.png ├── 4970j_0.png ├── 5023e_0.png ├── 5310r_0.png ├── 5599r_0.png ├── 5841j_0.png ├── 5964a_0.png ├── 6000a_0.png ├── 6104b_0.png ├── 6210x_0.png ├── 6217b_0.png ├── 6217i_0.png ├── 6217j_0.png ├── 6217k_0.png ├── 6217m_0.png ├── 6217x_0.png ├── 6217z_0.png ├── 6222a_0.png ├── 6222b_0.png ├── 6227a_0.png ├── 6228a_0.png ├── 6228b_0.png ├── 6228j_0.png ├── 6228m_0.png ├── 6228s_0.png ├── 6231d_0.png ├── 6236a_0.png ├── 6326p_0.png ├── 633_a_0.png ├── 6584j_0.png ├── 6767a_0.png ├── 6821b_0.png ├── 7303b_0.png ├── 7633x_0.png ├── 7771a_0.png ├── 8033a_0.png ├── 8033e_0.png ├── 804_a_0.png ├── 8125a_0.png ├── 821_e_0.png ├── 8410j_0.png ├── 848_f_0.png ├── 8610p_0.png ├── 8777b_0.png ├── 890_a_0.png ├── 9011a_0.png ├── 9281e_0.png ├── 9559r_0.png ├── 9676a_0.png ├── 9707j_0.png └── 9895a_0.png ├── model ├── train_model-9501.meta ├── train_model-9601.meta ├── train_model-9701.meta ├── train_model-9801.meta ├── train_model-9901.meta ├── train_model-9501.index ├── train_model-9601.index ├── train_model-9701.index ├── train_model-9801.index ├── train_model-9901.index ├── train_model-9501.data-00000-of-00001 ├── train_model-9601.data-00000-of-00001 ├── train_model-9701.data-00000-of-00001 ├── train_model-9801.data-00000-of-00001 ├── train_model-9901.data-00000-of-00001 └── checkpoint ├── train.py ├── forward.py ├── app.py ├── readme.md ├── backward.py ├── PreProcess.py └── ImgHandle.py /test_images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/test_images/1.jpg -------------------------------------------------------------------------------- /test_images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/test_images/2.jpg -------------------------------------------------------------------------------- /test_images/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/test_images/3.jpg -------------------------------------------------------------------------------- /images/0000x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0000x_0.png -------------------------------------------------------------------------------- /images/0012b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0012b_0.png -------------------------------------------------------------------------------- /images/0029j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0029j_0.png -------------------------------------------------------------------------------- /images/0029m_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0029m_0.png -------------------------------------------------------------------------------- /images/0038j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0038j_0.png -------------------------------------------------------------------------------- /images/0076s_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0076s_0.png -------------------------------------------------------------------------------- /images/0100a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0100a_0.png -------------------------------------------------------------------------------- /images/0128b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0128b_0.png -------------------------------------------------------------------------------- /images/0202r_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0202r_0.png -------------------------------------------------------------------------------- /images/0248b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0248b_0.png -------------------------------------------------------------------------------- /images/024_a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/024_a_0.png -------------------------------------------------------------------------------- /images/0410j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0410j_0.png -------------------------------------------------------------------------------- /images/0410k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0410k_0.png -------------------------------------------------------------------------------- /images/0436p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0436p_0.png -------------------------------------------------------------------------------- /images/0497j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0497j_0.png -------------------------------------------------------------------------------- /images/0515a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0515a_0.png -------------------------------------------------------------------------------- /images/0657e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0657e_0.png -------------------------------------------------------------------------------- /images/0861a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0861a_0.png -------------------------------------------------------------------------------- /images/0890x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/0890x_0.png -------------------------------------------------------------------------------- /images/1001a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1001a_0.png -------------------------------------------------------------------------------- /images/1004j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1004j_0.png -------------------------------------------------------------------------------- /images/1005x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1005x_0.png -------------------------------------------------------------------------------- /images/1043b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1043b_0.png -------------------------------------------------------------------------------- /images/1049j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1049j_0.png -------------------------------------------------------------------------------- /images/1118a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1118a_0.png -------------------------------------------------------------------------------- /images/1161a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1161a_0.png -------------------------------------------------------------------------------- /images/1165k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1165k_0.png -------------------------------------------------------------------------------- /images/1287b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1287b_0.png -------------------------------------------------------------------------------- /images/1406a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1406a_0.png -------------------------------------------------------------------------------- /images/1416j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1416j_0.png -------------------------------------------------------------------------------- /images/1513e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1513e_0.png -------------------------------------------------------------------------------- /images/1650s_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1650s_0.png -------------------------------------------------------------------------------- /images/1658j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1658j_0.png -------------------------------------------------------------------------------- /images/1775j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/1775j_0.png -------------------------------------------------------------------------------- /images/2022j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2022j_0.png -------------------------------------------------------------------------------- /images/2177j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2177j_0.png -------------------------------------------------------------------------------- /images/2202a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2202a_0.png -------------------------------------------------------------------------------- /images/2202b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2202b_0.png -------------------------------------------------------------------------------- /images/2220a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2220a_0.png -------------------------------------------------------------------------------- /images/2220b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2220b_0.png -------------------------------------------------------------------------------- /images/2282c_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2282c_0.png -------------------------------------------------------------------------------- /images/2284a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2284a_0.png -------------------------------------------------------------------------------- /images/2284c_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2284c_0.png -------------------------------------------------------------------------------- /images/2284e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2284e_0.png -------------------------------------------------------------------------------- /images/2284j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2284j_0.png -------------------------------------------------------------------------------- /images/236_a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/236_a_0.png -------------------------------------------------------------------------------- /images/2389p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2389p_0.png -------------------------------------------------------------------------------- /images/2531r_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2531r_0.png -------------------------------------------------------------------------------- /images/2616k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2616k_0.png -------------------------------------------------------------------------------- /images/2821p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2821p_0.png -------------------------------------------------------------------------------- /images/2848a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2848a_0.png -------------------------------------------------------------------------------- /images/2848c_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2848c_0.png -------------------------------------------------------------------------------- /images/2848e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2848e_0.png -------------------------------------------------------------------------------- /images/2848j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2848j_0.png -------------------------------------------------------------------------------- /images/2877b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/2877b_0.png -------------------------------------------------------------------------------- /images/3000x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3000x_0.png -------------------------------------------------------------------------------- /images/3003a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3003a_0.png -------------------------------------------------------------------------------- /images/3003j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3003j_0.png -------------------------------------------------------------------------------- /images/3010a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3010a_0.png -------------------------------------------------------------------------------- /images/3261p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3261p_0.png -------------------------------------------------------------------------------- /images/3536x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3536x_0.png -------------------------------------------------------------------------------- /images/3632k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3632k_0.png -------------------------------------------------------------------------------- /images/3890p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/3890p_0.png -------------------------------------------------------------------------------- /images/4000j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4000j_0.png -------------------------------------------------------------------------------- /images/4000k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4000k_0.png -------------------------------------------------------------------------------- /images/4051a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4051a_0.png -------------------------------------------------------------------------------- /images/4104j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4104j_0.png -------------------------------------------------------------------------------- /images/4363p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4363p_0.png -------------------------------------------------------------------------------- /images/4970j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/4970j_0.png -------------------------------------------------------------------------------- /images/5023e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/5023e_0.png -------------------------------------------------------------------------------- /images/5310r_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/5310r_0.png -------------------------------------------------------------------------------- /images/5599r_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/5599r_0.png -------------------------------------------------------------------------------- /images/5841j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/5841j_0.png -------------------------------------------------------------------------------- /images/5964a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/5964a_0.png -------------------------------------------------------------------------------- /images/6000a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6000a_0.png -------------------------------------------------------------------------------- /images/6104b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6104b_0.png -------------------------------------------------------------------------------- /images/6210x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6210x_0.png -------------------------------------------------------------------------------- /images/6217b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217b_0.png -------------------------------------------------------------------------------- /images/6217i_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217i_0.png -------------------------------------------------------------------------------- /images/6217j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217j_0.png -------------------------------------------------------------------------------- /images/6217k_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217k_0.png -------------------------------------------------------------------------------- /images/6217m_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217m_0.png -------------------------------------------------------------------------------- /images/6217x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217x_0.png -------------------------------------------------------------------------------- /images/6217z_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6217z_0.png -------------------------------------------------------------------------------- /images/6222a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6222a_0.png -------------------------------------------------------------------------------- /images/6222b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6222b_0.png -------------------------------------------------------------------------------- /images/6227a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6227a_0.png -------------------------------------------------------------------------------- /images/6228a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6228a_0.png -------------------------------------------------------------------------------- /images/6228b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6228b_0.png -------------------------------------------------------------------------------- /images/6228j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6228j_0.png -------------------------------------------------------------------------------- /images/6228m_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6228m_0.png -------------------------------------------------------------------------------- /images/6228s_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6228s_0.png -------------------------------------------------------------------------------- /images/6231d_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6231d_0.png -------------------------------------------------------------------------------- /images/6236a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6236a_0.png -------------------------------------------------------------------------------- /images/6326p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6326p_0.png -------------------------------------------------------------------------------- /images/633_a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/633_a_0.png -------------------------------------------------------------------------------- /images/6584j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6584j_0.png -------------------------------------------------------------------------------- /images/6767a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6767a_0.png -------------------------------------------------------------------------------- /images/6821b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/6821b_0.png -------------------------------------------------------------------------------- /images/7303b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/7303b_0.png -------------------------------------------------------------------------------- /images/7633x_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/7633x_0.png -------------------------------------------------------------------------------- /images/7771a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/7771a_0.png -------------------------------------------------------------------------------- /images/8033a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8033a_0.png -------------------------------------------------------------------------------- /images/8033e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8033e_0.png -------------------------------------------------------------------------------- /images/804_a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/804_a_0.png -------------------------------------------------------------------------------- /images/8125a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8125a_0.png -------------------------------------------------------------------------------- /images/821_e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/821_e_0.png -------------------------------------------------------------------------------- /images/8410j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8410j_0.png -------------------------------------------------------------------------------- /images/848_f_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/848_f_0.png -------------------------------------------------------------------------------- /images/8610p_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8610p_0.png -------------------------------------------------------------------------------- /images/8777b_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/8777b_0.png -------------------------------------------------------------------------------- /images/890_a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/890_a_0.png -------------------------------------------------------------------------------- /images/9011a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9011a_0.png -------------------------------------------------------------------------------- /images/9281e_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9281e_0.png -------------------------------------------------------------------------------- /images/9559r_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9559r_0.png -------------------------------------------------------------------------------- /images/9676a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9676a_0.png -------------------------------------------------------------------------------- /images/9707j_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9707j_0.png -------------------------------------------------------------------------------- /images/9895a_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/images/9895a_0.png -------------------------------------------------------------------------------- /model/train_model-9501.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9501.meta -------------------------------------------------------------------------------- /model/train_model-9601.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9601.meta -------------------------------------------------------------------------------- /model/train_model-9701.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9701.meta -------------------------------------------------------------------------------- /model/train_model-9801.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9801.meta -------------------------------------------------------------------------------- /model/train_model-9901.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9901.meta -------------------------------------------------------------------------------- /model/train_model-9501.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9501.index -------------------------------------------------------------------------------- /model/train_model-9601.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9601.index -------------------------------------------------------------------------------- /model/train_model-9701.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9701.index -------------------------------------------------------------------------------- /model/train_model-9801.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9801.index -------------------------------------------------------------------------------- /model/train_model-9901.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9901.index -------------------------------------------------------------------------------- /model/train_model-9501.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9501.data-00000-of-00001 -------------------------------------------------------------------------------- /model/train_model-9601.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9601.data-00000-of-00001 -------------------------------------------------------------------------------- /model/train_model-9701.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9701.data-00000-of-00001 -------------------------------------------------------------------------------- /model/train_model-9801.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9801.data-00000-of-00001 -------------------------------------------------------------------------------- /model/train_model-9901.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zifeiyu0531/Bank-card-number-identification/HEAD/model/train_model-9901.data-00000-of-00001 -------------------------------------------------------------------------------- /model/checkpoint: -------------------------------------------------------------------------------- 1 | model_checkpoint_path: "train_model-9901" 2 | all_model_checkpoint_paths: "train_model-9501" 3 | all_model_checkpoint_paths: "train_model-9601" 4 | all_model_checkpoint_paths: "train_model-9701" 5 | all_model_checkpoint_paths: "train_model-9801" 6 | all_model_checkpoint_paths: "train_model-9901" 7 | -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | import backward as bw 2 | import app 3 | 4 | 5 | if __name__ == '__main__': 6 | ''' 7 | 训练过程调用 8 | train表示是否需要继续训练 9 | 若需要继续训练,将该参数改为True, 10 | 若需要重新训练,请将model文件夹清空并将该参数改为True 11 | ''' 12 | train = False 13 | if train: 14 | bw.main() 15 | 16 | ''' 17 | 测试过程调用 18 | file_path表示用于测试的文件路径 19 | 若想测试其他图片,请将file_path修改成相应的路径 20 | ''' 21 | file_path = 'test_images/1.jpg' 22 | app.application(file_path) 23 | -------------------------------------------------------------------------------- /forward.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | 3 | INPUT_NODE = 256 # 输入层 4 | OUTPUT_NODE = 10 # 输出层 5 | LAYER1_NODE = 100 # 隐藏层 6 | LAYER2_NODE = 100 # 隐藏层2 7 | 8 | def get_weight(shape, regularizer): 9 | w = tf.Variable(tf.truncated_normal(shape,stddev=0.1)) 10 | if regularizer != None: tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(regularizer)(w)) 11 | return w 12 | 13 | 14 | def get_bias(shape): 15 | b = tf.Variable(tf.zeros(shape)) 16 | return b 17 | 18 | def forward(x, regularizer): 19 | w1 = get_weight([INPUT_NODE, LAYER1_NODE], regularizer) 20 | b1 = get_bias([LAYER1_NODE]) 21 | y1 = tf.nn.relu(tf.matmul(x, w1) + b1) 22 | 23 | w2 = get_weight([LAYER1_NODE, LAYER2_NODE], regularizer) 24 | b2 = get_bias([LAYER2_NODE]) 25 | y2 = tf.nn.relu(tf.matmul(y1, w2) + b2) 26 | 27 | w3 = get_weight([LAYER2_NODE, OUTPUT_NODE], regularizer) 28 | b3 = get_bias([OUTPUT_NODE]) 29 | y = tf.matmul(y2, w3) + b3 30 | return y 31 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | 3 | import tensorflow as tf 4 | import backward 5 | import forward 6 | import PreProcess as PP 7 | 8 | 9 | def restore_model(testArr): 10 | with tf.Graph().as_default() as tg: 11 | x = tf.placeholder(tf.float32, [None, forward.INPUT_NODE]) 12 | y = forward.forward(x, None) 13 | preValue = tf.argmax(y, 1) 14 | 15 | variable_averages = tf.train.ExponentialMovingAverage(backward.MOVING_AVERAGE_DECAY) 16 | variables_to_restore = variable_averages.variables_to_restore() 17 | saver = tf.train.Saver(variables_to_restore) 18 | 19 | with tf.Session() as sess: 20 | ckpt = tf.train.get_checkpoint_state(backward.MODEL_SAVE_PATH) 21 | if ckpt and ckpt.model_checkpoint_path: 22 | saver.restore(sess, ckpt.model_checkpoint_path) 23 | preValue = sess.run(preValue, feed_dict={x:testArr}) 24 | return preValue 25 | else: 26 | print("No checkpoint file found") 27 | return -1 28 | 29 | 30 | def application(file_path): 31 | data = PP.image_process(file_path) 32 | lable = '' 33 | if(len(data)==0): 34 | print("识别失败,请传入更清晰的图片") 35 | else: 36 | print("正在识别......") 37 | for i in range(len(data)): 38 | preValue = restore_model(data[i:i + 1])[0] 39 | lable += str(preValue) 40 | print("识别结果:"+lable) 41 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Background 2 | 银行卡号识别系统-基于Tensorflow&openCV 3 | 4 | 视频地址:[bilibili:【深度学习】银行卡号识别系统-基于TensorFlow&OpenCV](https://www.bilibili.com/video/BV1U7411i7rm) 5 | 6 | 输入用例:待识别银行卡图片 7 | 8 | ![image](https://github.com/zifeiyu0531/readme-imgs/blob/master/Bank-card-number-identification/%E8%BE%93%E5%85%A5%E6%A0%B7%E4%BE%8B.jpg) 9 | 10 | 输出用例:识别结果 11 | 12 | ![image](https://github.com/zifeiyu0531/readme-imgs/blob/master/Bank-card-number-identification/%E8%BE%93%E5%87%BA%E6%A0%B7%E4%BE%8B.png) 13 | 14 | 项目结构: 15 | ``` 16 | images: 训练集 17 | test_images: 测试集 18 | model: 训练模型 19 | train.py: 入口文件 20 | PreProcess.py & ImgHandle.py: 图像处理代码 21 | forward.py: 深度学习模型前向传播代码 22 | backward.py: 深度学习模型反向传播代码 23 | app.py: 模型调用代码 24 | ``` 25 | # Enviroment 26 | 语言:`Python3.7` 27 | 28 | 深度学习框架:`TensorFlow` 29 | 30 | 图像处理:`OpenCV` 31 | # Install 32 | `Python3`运行环境:[下载地址](https://www.python.org/downloads/) 33 | 34 | `TensorFlow`安装: 35 | ``` 36 | pip install tensorflow 37 | ``` 38 | `OpenCV`安装(清华镜像): 39 | ``` 40 | pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 41 | ``` 42 | # Usage 43 | Clone库到本地 44 | 45 | ### 训练模型 46 | 删除`model`文件夹内容 47 | 48 | 进入`train.py` 49 | 50 | 将布尔变量`train`的值改为`true` 51 | 52 | 运行`train.py` 53 | ### 模型调用 54 | 进入`train.py` 55 | 56 | 修改变量`file_path`的值为想要识别的图片路径 57 | 58 | 运行`train.py` 59 | # Pack -------------------------------------------------------------------------------- /backward.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | import forward 3 | import os 4 | import ImgHandle as IMG 5 | import random 6 | 7 | BATCH_SIZE = 20 8 | REGULARIZER = 0.001 9 | STEPS = 10000 10 | MOVING_AVERAGE_DECAY = 0.01 11 | MODEL_SAVE_PATH="./model/" 12 | MODEL_NAME="train_model" 13 | FILE_NAME="Classification.xlsx" 14 | 15 | def backward(data, label): 16 | 17 | x = tf.placeholder(tf.float32, shape = (None, forward.INPUT_NODE)) 18 | y_ = tf.placeholder(tf.float32, shape = (None, forward.OUTPUT_NODE)) 19 | y = forward.forward(x, REGULARIZER) 20 | global_step = tf.Variable(0, trainable=False) 21 | 22 | ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1)) 23 | cem = tf.reduce_mean(ce) 24 | loss = cem + tf.add_n(tf.get_collection('losses')) 25 | 26 | train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss, global_step=global_step) 27 | 28 | ema = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step) 29 | ema_op = ema.apply(tf.trainable_variables()) 30 | with tf.control_dependencies([train_step, ema_op]): 31 | train_op = tf.no_op(name='train') 32 | 33 | saver = tf.train.Saver() 34 | 35 | with tf.Session() as sess: 36 | init_op = tf.global_variables_initializer() 37 | sess.run(init_op) 38 | 39 | ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH) 40 | if ckpt and ckpt.model_checkpoint_path: 41 | saver.restore(sess, ckpt.model_checkpoint_path) 42 | 43 | for i in range(STEPS): 44 | start = (i*BATCH_SIZE)%len(data) 45 | end = start+BATCH_SIZE 46 | _, loss_value, step = sess.run([train_op, loss, global_step], feed_dict={x: data[start:end], y_: label[start:end]}) 47 | if i % 100 == 0: 48 | print("After %d training step(s), loss on training batch is %g." % (step, loss_value)) 49 | saver.save(sess, os.path.join(MODEL_SAVE_PATH, MODEL_NAME), global_step=global_step) 50 | 51 | 52 | def main(): 53 | data, label = IMG.img_handle() 54 | for i in range(len(data)): 55 | x, y = random.randint(0, len(data)-1), random.randint(0, len(data)-1) 56 | temp_data = data[x] 57 | data[x] = data[y] 58 | data[y] = temp_data 59 | temp_label = label[x] 60 | label[x] = label[y] 61 | label[y] = temp_label 62 | print(len(data), len(label)) 63 | backward(data, label) -------------------------------------------------------------------------------- /PreProcess.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import numpy as np 3 | 4 | def image_process(file_path): 5 | img = cv2.imread(file_path, 0) 6 | blur = cv2.GaussianBlur(img, (3, 3), 0) #高斯模糊 7 | ret, binary = cv2.threshold(blur, 50, 255, cv2.THRESH_BINARY) #二值化 8 | 9 | kernel = np.ones((1, 50), np.uint8) 10 | erosion = cv2.erode(binary, kernel) # 膨胀 11 | dilation = cv2.dilate(erosion, kernel) # 腐蚀 12 | 13 | contours, hierarchy = cv2.findContours(dilation, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 14 | sp = dilation.shape 15 | x, y, w, h = 0, 0, 0, 0 16 | for i in range(0, len(contours)): 17 | x, y, w, h = cv2.boundingRect(contours[i]) 18 | if h > sp[0]*0.05 and w > sp[1]*0.5 and y > sp[0]*0.2 and y < sp[0]*0.8 and w/h > 5: 19 | img = binary[y:y + h, x:x + w] 20 | break 21 | 22 | return num_split(img) 23 | 24 | 25 | def num_split(img): 26 | height, width = img.shape 27 | v = [0] * width 28 | z = [0] * height 29 | a = 0 30 | 31 | # 垂直投影:统计并存储每一列的黑点数 32 | for x in range(0, width): 33 | for y in range(0, height): 34 | if img[y, x] == 255: 35 | continue 36 | else: 37 | a = a + 1 38 | v[x] = a 39 | a = 0 40 | 41 | # 创建空白图片,绘制垂直投影图 42 | l = len(v) 43 | emptyImage = np.full((height, width), 255, dtype=np.uint8) 44 | for x in range(0, width): 45 | for y in range(0, v[x]): 46 | emptyImage[y, x] = 0 47 | 48 | #分割字符 49 | Position = [] 50 | Wstart = 0 51 | Wend = 0 52 | W_Start = 0 53 | W_End = 0 54 | v[0], v[len(v)-1] = 0, 0 55 | for j in range(len(v)): 56 | if v[j] > 0 and Wstart == 0: 57 | W_Start = j 58 | Wstart = 1 59 | Wend = 0 60 | if v[j] <= 0 and Wstart == 1: 61 | W_End = j 62 | Wstart = 0 63 | Wend = 1 64 | if Wend == 1: 65 | Position.append([W_Start, 0, W_End, height]) 66 | Wend = 0 67 | 68 | data = [] 69 | for m in range(len(Position)): 70 | temp_img = img[Position[m][1]:Position[m][3], Position[m][0]:Position[m][2]] 71 | 72 | h1, w1 = temp_img.shape 73 | if w1 > h1: 74 | return [] 75 | temp_img = cv2.resize(temp_img, (16, 16)) 76 | 77 | h0, w0 = temp_img.shape 78 | temp_data = [] 79 | for hx in range(h0): 80 | for wx in range(w0): 81 | temp_data.append(float(temp_img[hx, wx])) 82 | data.append(temp_data) 83 | 84 | return data -------------------------------------------------------------------------------- /ImgHandle.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import os 3 | import numpy as np 4 | import random 5 | 6 | 7 | data = [] 8 | label = [] 9 | 10 | 11 | def get_img(img, file): 12 | blur = cv2.GaussianBlur(img, (3, 3), 0) # 高斯模糊 13 | ret, img = cv2.threshold(blur, 60, 255, cv2.THRESH_BINARY) # 二值化 14 | 15 | height, width = img.shape 16 | v = [0] * width 17 | z = [0] * height 18 | a = 0 19 | 20 | # 垂直投影:统计并存储每一列的黑点数 21 | for x in range(0, width): 22 | for y in range(0, height): 23 | if img[y, x] == 255: 24 | continue 25 | else: 26 | a = a + 1 27 | v[x] = a 28 | a = 0 29 | 30 | # 创建空白图片,绘制垂直投影图 31 | l = len(v) 32 | emptyImage = np.full((height, width), 255, dtype=np.uint8) 33 | for x in range(0, width): 34 | for y in range(0, v[x]): 35 | emptyImage[y, x] = 0 36 | 37 | # 分割字符 38 | Position = [] 39 | Wstart = 0 40 | Wend = 0 41 | W_Start = 0 42 | W_End = 0 43 | v[0], v[len(v) - 1] = 0, 0 44 | for j in range(len(v)): 45 | if v[j] > 0 and Wstart == 0: 46 | W_Start = j 47 | Wstart = 1 48 | Wend = 0 49 | if v[j] <= 0 and Wstart == 1: 50 | W_End = j 51 | Wstart = 0 52 | Wend = 1 53 | if Wend == 1: 54 | Position.append([W_Start, 0, W_End, height]) 55 | Wend = 0 56 | 57 | i = 0 58 | for m in range(len(Position)): 59 | if Position[m][3]/(Position[m][2]-Position[m][0]) > 1 and Position[m][3]/(Position[m][2]-Position[m][0]) < 5: 60 | temp_img = img[Position[m][1]:Position[m][3], Position[m][0]:Position[m][2]] 61 | 62 | temp_img = cv2.resize(temp_img, (16, 16)) 63 | 64 | 65 | 66 | blur1 = cv2.GaussianBlur(temp_img, (1, 1), 0) # 高斯模糊 67 | blur2 = cv2.GaussianBlur(temp_img, (3, 3), 0) # 高斯模糊 68 | noise = sp_noise(temp_img, 0.01) 69 | 70 | h0, w0 = temp_img.shape 71 | temp_label = [0.0] * 10 72 | 73 | temp_data = [] 74 | for hx in range(h0): 75 | for wx in range(w0): 76 | temp_data.append(float(temp_img[hx, wx])) 77 | data.append(temp_data) 78 | 79 | temp_data = [] 80 | for hx in range(h0): 81 | for wx in range(w0): 82 | temp_data.append(float(blur1[hx, wx])) 83 | data.append(temp_data) 84 | 85 | temp_data = [] 86 | for hx in range(h0): 87 | for wx in range(w0): 88 | temp_data.append(float(blur2[hx, wx])) 89 | data.append(temp_data) 90 | 91 | temp_data = [] 92 | for hx in range(h0): 93 | for wx in range(w0): 94 | temp_data.append(float(noise[hx, wx])) 95 | data.append(temp_data) 96 | 97 | temp_data = [] #左移 98 | for hx in range(h0): 99 | for wx in range(w0): 100 | if wx < w0-1: 101 | temp_data.append(float(temp_img[hx, wx+1])) 102 | else: 103 | temp_data.append(255.0) 104 | data.append(temp_data) 105 | 106 | temp_data = [] # 右移 107 | for hx in range(h0): 108 | for wx in range(w0): 109 | if wx > 0: 110 | temp_data.append(float(temp_img[hx, wx - 1])) 111 | else: 112 | temp_data.append(255.0) 113 | data.append(temp_data) 114 | 115 | temp_data = [] # 上移 116 | for hx in range(h0): 117 | if hx < h0-1: 118 | for wx in range(w0): 119 | temp_data.append(float(temp_img[hx+1, wx])) 120 | else: 121 | for wx in range(w0): 122 | temp_data.append(255.0) 123 | data.append(temp_data) 124 | 125 | temp_data = [] # 下移 126 | for hx in range(h0): 127 | if hx > 0: 128 | for wx in range(w0): 129 | temp_data.append(float(temp_img[hx-1, wx])) 130 | else: 131 | for wx in range(w0): 132 | temp_data.append(255.0) 133 | data.append(temp_data) 134 | 135 | temp_label[int(file[i])] = 1.0 136 | for j in range(8): 137 | label.append(temp_label) 138 | i += 1 139 | 140 | 141 | def sp_noise(image,prob): 142 | ''' 143 | 添加椒盐噪声 144 | prob:噪声比例 145 | ''' 146 | output = np.zeros(image.shape,np.uint8) 147 | thres = 1 - prob 148 | for i in range(image.shape[0]): 149 | for j in range(image.shape[1]): 150 | rdn = random.random() 151 | if rdn < prob: 152 | output[i][j] = 0 153 | elif rdn > thres: 154 | output[i][j] = 255 155 | else: 156 | output[i][j] = image[i][j] 157 | return output 158 | 159 | 160 | def img_handle(): 161 | for root, dirs, files in os.walk('./images'): 162 | for file in files: 163 | img_path = root+'/'+file 164 | img = cv2.imread(img_path, 0) 165 | get_img(img, file) 166 | return data, label 167 | --------------------------------------------------------------------------------