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
显示结果:

skimage学习(一)的更多相关文章
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- 用tensorlayer导入Slim模型迁移学习
上一篇博客[用tensorflow迁移学习猫狗分类]笔者讲到用tensorlayer的[VGG16模型]迁移学习图像分类,那麽问题来了,tensorlayer没提供的模型怎么办呢?别担心,tensor ...
- pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL
参考:https://pytorch.org/tutorials/beginner/data_loading_tutorial.html DATA LOADING AND PROCESSING TUT ...
- 4.keras实现-->生成式深度学习之用变分自编码器VAE生成图像(mnist数据集和名人头像数据集)
变分自编码器(VAE,variatinal autoencoder) VS 生成式对抗网络(GAN,generative adversarial network) 两者不仅适用于图像,还可以 ...
- caffe 学习(1) —— Classification: Instant Recognition with Caffe
学习地址http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb 1.安装m ...
- caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--01
引用了下文的资料,在此感谢! http://www.cnblogs.com/alexcai/p/5468164.html http://blog.csdn.net/garfielder007/arti ...
- tensorflow学习笔记——图像数据处理
喜欢摄影的盆友都知道图像的亮度,对比度等属性对图像的影响是非常大的,相同物体在不同亮度,对比度下差别非常大.然而在很多图像识别问题中,这些因素都不应该影响最后的结果.所以本文将学习如何对图像数据进行预 ...
- Note | PyTorch官方教程学习笔记
目录 1. 快速入门PYTORCH 1.1. 什么是PyTorch 1.1.1. 基础概念 1.1.2. 与NumPy之间的桥梁 1.2. Autograd: Automatic Differenti ...
- python dlib学习(五):比对人脸
前言在前面的博客中介绍了,如何使用dlib标定人脸(python dlib学习(一):人脸检测),提取68个特征点(python dlib学习(二):人脸特征点标定).这次要在这两个工作的基础之上,将 ...
随机推荐
- K-th Number
区间第K大 题目链接 #include <stdio.h> #include <algorithm> #include <vector> #include < ...
- 服务器安装docker后免除sudo命令
1. 先建立一个docker组:sudo groupadd docker 2. 将用户加入docker组:sudo usermod -aG docker (用户名) 3. 先退出登录:exit 4. ...
- JavaScript进阶 - 第8章 浏览器对象
第8章 浏览器对象 8-1 window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法:
- [题解](同余)POJ_3696_The Luckiest Number
还是挺难的吧......勉强看懂调了半天 首先表达式可以写成 8(10^x -1)/9,题意为求一个最小的x使L | 8(10^x -1)/9 设d=gcd(L,8) L | 8(10^x -1)/9 ...
- 从wireshake分析http和https的通信过程
参考文章: Wireshark基本介绍和学习TCP三次握手 [技术流]Wireshark对HTTPS数据的解密 Wireshark/HTTPS Journey to HTTP/2 以TCP/IP协议为 ...
- Linux修改war包中文件
rm -rf /tmp/wiq.warcp /u02/wms_dev/wiq-app/wars/wiq.war /tmpcd /tmp jar xvf wiq.war vim WEB-INF/clas ...
- spring boot 使用hibernate validator 验证service
不在controller中验证,而是在service中验证. spring boot 默认使用的就是hibernate validator,存在于pom的spring-boot-starter-web ...
- Spring Cloud 熔断器
目录 Spring Cloud 熔断器 Hystrix ribbon中使用hystrix feign中使用hystrix Spring Cloud 熔断器 在微服务架构中,根据业务来拆分成一个个的服务 ...
- Windows3
windows安装后的配置 没有网络适配器, 将USB中的驱动精灵的安装程序安装在win上, 启动精灵, 提示无法连接到网络, 使用Android类型的手机中的QQ浏览器扫码下载 win会有一些开机自 ...
- MVC4学习之官方教程中迁移版本库报错
因工作需要,学习MVC4,但是微软官方教程中迁移版本库步骤在本地测试报错 官方教程地址:http://www.asp.net/mvc/overview/older-versions/getting-s ...