图片的处理

一。图片处理过程

    1.   将图片灰度转换,处理成背景为黑色,数字为白色的图片,图片矩阵元素只有0和1,且矩阵的数据类型(dtype)为 'float64' 。

    2.  将图片里的数字取出来。

    3.  将取出的数字伸缩到相应的大小。

二。代码实现

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 
 4 from skimage import io
 5 import numpy as np
 6 
 7 m, n = 100, 100 # 设置处理后的图片大小
 8 
 9 def imgOut(inputImg): # 对图片进行灰度处理和大小处理
10     img01 = io.imread(inputImg, as_grey = True) # 读取图片,并灰度转换 
11     tu=sorted([(np.sum(img01==i),i) for i in set(img01.flat)]) # https://blog.csdn.net/l297969586/article/details/77878962
12 
13     # 字体为白色,背景为黑色
14     img01[img01 == tu[-1][1]] = 0
15     img01[img01 != 0] = 1
16 
17     # 截取图片数字
18     rowLen = len(img01[0])
19     colLen = len(img01)
20     # 四个变量保存了数字顶部到图片顶部 数字底部到图片顶部 数字左边到图片左边 数字右边到图片左边的距离
21     row01, row02, col01, col02 = 0, 0, 0, 0
22     for i in range(colLen):
23         for j in range(rowLen):
24             if img01[i][j] == 1:
25                 col01 = i
26                 break
27 
28     for i in range(colLen)[::-1]:
29         for j in range(rowLen):
30             if img01[i][j] == 1:
31                 col02 = i
32                 break
33 
34     for i in range(rowLen):
35         for j in range(colLen):
36             if img01[j][i] == 1:
37                 row01 = i
38                 break
39 
40     for i in range(rowLen)[::-1]:
41         for j in range(colLen):
42             if img01[j][i] == 1:
43                 row02 = i
44                 break
45 
46     # 对矩阵img01进行截取
47     img02 = img01[col02-10:col01+10, row02-10:row01+10]
48     
49     # 处理图片大小,数字的每个像素点在原图位置的比例,按同样的比例放倒伸缩的图片中
50     img03 = np.zeros([m,n])
51     for i in range(len(img02)):
52         for j in range(len(img02[0])):
53             if img02[i][j] == 1:
54                 img03[int(i*m/len(img02))][int(j*n/len(img02[0]))] = 1
55     return img03
56 
57 img02 = imgOut('./2_1.png') # 处理当前文件夹的 2_1.png 图片
58 io.imsave("2.jpg",img02) # 处理后保存在当前文件夹的 2.jpg 图片

 

三。处理结果

   处理前                                                                               处理后

            

 四。代码下载

dev分支     https://gitee.com/GH16/neural-network.git

posted @ 2018-04-08 22:15  Python++  阅读(175)  评论(0编辑  收藏  举报