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

显示结果:

skimage学习(一)的更多相关文章

  1. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  2. 用tensorlayer导入Slim模型迁移学习

    上一篇博客[用tensorflow迁移学习猫狗分类]笔者讲到用tensorlayer的[VGG16模型]迁移学习图像分类,那麽问题来了,tensorlayer没提供的模型怎么办呢?别担心,tensor ...

  3. pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL

    参考:https://pytorch.org/tutorials/beginner/data_loading_tutorial.html DATA LOADING AND PROCESSING TUT ...

  4. 4.keras实现-->生成式深度学习之用变分自编码器VAE生成图像(mnist数据集和名人头像数据集)

    变分自编码器(VAE,variatinal autoencoder)   VS    生成式对抗网络(GAN,generative adversarial network) 两者不仅适用于图像,还可以 ...

  5. caffe 学习(1) —— Classification: Instant Recognition with Caffe

    学习地址http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb 1.安装m ...

  6. caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--01

    引用了下文的资料,在此感谢! http://www.cnblogs.com/alexcai/p/5468164.html http://blog.csdn.net/garfielder007/arti ...

  7. tensorflow学习笔记——图像数据处理

    喜欢摄影的盆友都知道图像的亮度,对比度等属性对图像的影响是非常大的,相同物体在不同亮度,对比度下差别非常大.然而在很多图像识别问题中,这些因素都不应该影响最后的结果.所以本文将学习如何对图像数据进行预 ...

  8. Note | PyTorch官方教程学习笔记

    目录 1. 快速入门PYTORCH 1.1. 什么是PyTorch 1.1.1. 基础概念 1.1.2. 与NumPy之间的桥梁 1.2. Autograd: Automatic Differenti ...

  9. python dlib学习(五):比对人脸

    前言在前面的博客中介绍了,如何使用dlib标定人脸(python dlib学习(一):人脸检测),提取68个特征点(python dlib学习(二):人脸特征点标定).这次要在这两个工作的基础之上,将 ...

随机推荐

  1. Java EE学习笔记(八)

    动态SQL 1.动态SQL中的元素 1).作用:无需手动拼装SQL,MyBatis已提供的对SQL语句动态组装的功能,使得数据库开发效率大大提高! 2).动态SQL是MyBatis的强大特性之一,My ...

  2. Ubuntu同时忘记用户密码和root密码

    在设置密码的时候,用到了小键盘,重启后再次用小键盘输入密码时,发现输入的并不是数字,而是其他符号.所以在设置关键信息的时候,小键盘还是得慎用啊. 解决方案: 在引导界面也就是开机倒计时的时候,按下 e ...

  3. 「干货分享」模块化编程和maven配置实践一则

    ​ 封面 说到模块化编程,对我个人而言首先起因于团队协作的需要,也就是组织架构结构特点来决定,而不是跟风求得自我认同,看看我们团队的组织结构: ​ 其中: 基础平台部职责: 1.AI实验室:语音,图像 ...

  4. IIS服务器访问网站出现403错误的解决方法

    最近用织梦做了一个网站,因为织梦会在一个文件夹中生成网站的静态页面,而我们单击某个栏目时,一般程序都是直接去寻找该文件夹中的index.html文件的,当服务器中默认的索引文件不包括index.htm ...

  5. springboot+shiro+cas实现单点登录之shiro端搭建

    github:https://github.com/peterowang/shiro-cas 本文如有配置问题,请查看之前的springboot集成shiro的文章 1.配置ehcache缓存,在re ...

  6. 零基础逆向工程23_PE结构07_重定位表_IAT表(待补充)

    重定位表 待补充 IAT表 待补充

  7. Azure 虚拟机安全加固整理

    这篇文档不是原创,只是基于Azure官网上的Doc进行了相关链接的整理,从简单层面的安全设置,到更高层面的安全架构考量,以及Azure安全的白皮书及最佳实践,送给需要的你们,定有一款适合你! 做好数据 ...

  8. asterisk-java ami2 事件监听

    asteriskServer文章1提到啦怎么获取,就不解释 asteriskServer.addChainListener(new AsteriskeventListenerInit());//整个服 ...

  9. userBean之设置属性

    package com.java.model; public class Student { private String name;private int age; public String ge ...

  10. 在广州学习PHP零基础可以学习吗?

    PHP现今作为互联网运用很广泛的编程语言,市场需求量也越来越高,而PHP开发工程师的薪资也是一路水涨船高,更多的人看到了PHP的发展前景,纷纷都想投入到PHP的开发大军中来,那么对于很多转行或者零基础 ...