skimage即是Scikit-Image。基于python脚本语言开发的数字图片处理包

skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下:

data子模块学习

导入data模块

from skimage import color,io

加载data中的图片

chelsea = data.logo()                       
io.imshow(chelsea)

结果:(此图来自data中的资源图片)

color子模块的操作

from skimage import color

logo1 = color.rgb2gray(logo)               #将图片编程灰色
 io.imshow(logo1)

filters操作

进行二值化操作

图像的二值化,就是将图像上的像素点的灰度值设置为0或255(即0和1),也就是将整个图像呈现出明显的只有黑和白的视觉效果。

现将图片编程灰白的图片

from skimage import filters

chelsea = data.chelsea()                       #加载图片
chelsea1 = color.rgb2gray(chelsea)          #将加载的图片编程灰白的图片
io.imshow(chelsea)                   #展示图片
chelsea.shape                         #  观测图片尺寸

t1 = filters.threshold_otsu(chelsea1)              #对灰色图片进行预直化操作

for i in range(300):
     for j in range(451):
          if chelsea1[i,j] <=t1:             判断像素点预直化操作后的值进行对比,
                 chelsea1[i,j]=0               将小于预直化操作的像素点变成0
          else:
          chelsea1[i,j]=1                      将大于预直化操作的像素点变成1
io.imshow(chelsea1)                     显示二值化操作后的图片

二值化操作的应用

进行验证码的识别

如上图可以看到上边验证码有噪点,这样不利于电脑识别,所以使用二值化操作对验证码去噪点

code = io.imread("./code.jpg")            加载图片,将图片编程灰白图片
code1 = color.rgb2gray(code)
io.imshow(code)
code1.shape                    读出图片的大小为(211, 417)

进行二值化操作

c = filters.threshold_otsu(code1)                    #求出灰白图片的预值
c                                              
for x in range(211):
     for y in range(417):
          if code1[x,y]<=c:
               code1[x,y]=0
          else:
                code1[x,y]=1
io.imshow(code1)

如上图,进行二值化操作后只显示了三个数字,实际上是第四个数字颜色太浅了,被筛选走了

所以需要给验证码种颜色加深。直接对预值进行方法,让二值化是的筛选条件宽松

for x in range(211):
     for y in range(417):
          if code1[x,y]<=0.8:
               code1[x,y]=0
          else:
                code1[x,y]=1

显示结果:

最新文章

  1. MyEclipse 8.5 注册码 生成代码
  2. Effective C++ -----条款22:将成员变量声明为private
  3. 转:45 个 LoadRunner 面试问题(附答案)_纯英文,太有逼格了
  4. 拉格朗日乘子法和KKT条件
  5. 反射认识_02_反射成员变量Field
  6. pgdump使用
  7. vi 编辑内容中查找字符位置
  8. Intellij IDEA 使用Debug模式运行非常慢
  9. iOS--九宫格布局
  10. Java面向对象面试案例
  11. asp.net 使用HttpModule记录全局错误
  12. CRM setValue方法日期类型字段赋值
  13. ubuntu12.04下搭建ftpserver
  14. sed命令详解-应用篇
  15. 19_Python元组总结
  16. 我用 tensorflow 实现的“一个神经聊天模型”:一个基于深度学习的聊天机器人
  17. H5的表格
  18. Solr全文检索框架
  19. Failed to process import candidates for configuration class [com.simple.....]
  20. mysql 导入excel文件数据到数据库

热门文章

  1. W3C标准以及规范
  2. CF 1215解题报告
  3. PAT甲级——1110 Complete Binary Tree (完全二叉树)
  4. Python-14-抽象及关键字参数
  5. 手机APP开发(安卓、IOS)logo图标在线生成工具上线啦。
  6. Hive_Hive的数据模型_视图
  7. 使用MRUnit对MapReduce进行单元测试
  8. 洪水 Pow
  9. 用canvas裁剪图片
  10. 【转】LINQ to SQL语句(1)之Where