zoukankan      html  css  js  c++  java
  • skimage学习(一)

    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

    显示结果:

  • 相关阅读:
    怎样看文献
    How to save rules of the iptables?
    Keras 自适应Learning Rate (LearningRateScheduler)
    在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
    QT5.9 新特性与版本回顾
    [常见问题]解决创建servlet 找不到webservlet包.
    MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
    MyBatis学习总结(七)——Mybatis缓存
    MyBatis学习总结(六)——调用存储过程
    MyBatis学习总结(五)——实现关联表查询
  • 原文地址:https://www.cnblogs.com/kuangkuangduangduang/p/10287588.html
Copyright © 2011-2022 走看看