jupyter入门之图像处理
scipy图片处理
导入库
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
# 图像处理库
import matplotlib.pyplot as plt
%matplotlib inline
# scipy.fftpack模块用来计算快速傅里叶变换
# 速度比传统傅里叶变换更快,是对之前算法的改进
# 图片是二维数据,注意使用fftpack的二维转变方法
from scipy.fftpack import fft2,ifft2
# 积分库
from scipy.integrate import quad
图片消噪
示例,登月图片消噪
moon = plt.imread('moonlanding.png')# 灰度化处理的图片
plt.imshow(moon,cmap='gray')# 时域-频域
fft_data = fft2(moon)# 滤波,把高频波滤掉
# > 后边的值需要自己调节
condition = np.abs(fft_data) > 2e3
fft_data[np.where(condition)] = 0# 频域--时域
ifft_data = ifft2(fft_data)plt.imshow(np.real(ifft_data),cmap='gray')# jpg图像 0-255之间的整数
# png图像 0-1之间的小数
灰度处理
# 读取图片
pujing = plt.imread('pujing.jpg')
# 查看维度
pujing.shape
>>> (354, 500, 3)
# 去除色彩
pujing.mean(axis=2).shape
>>> (354, 500)
# 灰度处理
plt.imshow(pujing.mean(axis=2),cmap='gray')
数值积分,求解圆周率
integrate 对函数(1 - x^2)^0.5进行积分
f = lambda x:(1-x**2)**0.5
# 绘制区间
x = np.linspace(-1,1,100)
y = f(x)
plt.figure(figsize=(4,4))
plt.plot(x,y)
plt.plot(x,-y)
使用scipy.integrate进行积分,调用quad()方法
# 返回值第一个是面积,第二个是误差
area,err = quad(f,-1,1)
# area*2是整圆的面积
p = area*2/1**2
print(p)
>>> 3.1415926535897967
scipy文件输入/输出
随机生成数组,使用scipy中的io.savemat()保存 文件格式是.mat,标准的二进制文件
n = np.random.randint(0,100,size=10)
>>> array([28, 90, 21, 45, 75, 42, 76, 58, 1, 49])
# 导入io库
import scipy.io as io
# 存储二进制 文件路径默认是.mat,可以省略
# mdict用于传递要写入本地的数据,字典的键自由定制
io.savemat('dancer',mdict={'data':n})
# 使用io.loadmat()读取数据
io.loadmat('dancer.mat')['data']
>>> array([[28, 90, 21, 45, 75, 42, 76, 58, 1, 49]])
# 读写图片使用scipy中misc.imread()/imsave()
# 旧版读取
import scipy.misc as misc
misc.imread('pujing.jpg')
# 读取
import imageio as imgio
pujing = imgio.imread('pujing.jpg')
# 存储
pjgray = np.uint8(pujing.mean(axis=2))
imgio.imsave('gray_pujing.jpg',pjgray)
misc的rotate、resize、imfilter操作
# 旋转90度
plt.imshow(misc.imrotate(pujing,angle = 90))
import skimage.transform as transform
import imageio as misc
pujing = misc.imread('pujing.jpg')
transform.rotate(pujing,angle=90)
# output_shape 指定元组,会对图片进行变形压缩
# mode参数的默认值conctant需要修改,因为即将被remove
# 该拜年大小
plt.imshow(transform.resize(pujing,output_shape=(100,100),mode='symmetric'))
# 'blur', 'contour', 'detail', 'edge_enhance', 'edge_enhance_more',
# 'emboss', 'find_edges', 'smooth', 'smooth_more', 'sharpen'
# 类似于滤镜
plt.imshow(misc.imfilter(pujing,'emboss'))
scipy.ndimage图片处理
import scipy.ndimage as ndimage
# misc库自带的一张图片,可以快速读取一张小浣熊
img = misc.face(gray=True)
使用scipy.misc.face(gray=True)
获取图片,使用ndimage移动坐标、旋转图片、切割图片、缩放图片
shift移动坐标
# constant', 'nearest', 'reflect', 'mirror' ,'wrap'
plt.imshow(ndimage.shift(img,shift=[100,200],mode='wrap'),cmap='gray')
rotate旋转图片
zoom缩放图片
使用切片切割图片
图片进行过滤
添加噪声,对噪声图片使用ndimage中的高斯滤波、中值滤波、signal中维纳滤波进行处理
使图片变清楚
加载图片,使用灰色图片misc.face()添加噪声
gaussian高斯滤波参数sigma:高斯核的标准偏差
median中值滤波参数size:给出在每个元素上从输入数组中取出的形状位置,定义过滤器功能的输入
signal维纳滤波参数mysize:滤镜尺寸的标量
pandas中的绘图函数
线形图
导入库
# 三剑客
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
# 图像处理函数
import matplotlib.pyplot as plt
%matplotlib inline
示例
# 连续100天内,某一支股票价格的变化,可以采用线型图来表示
s1 = Series(data=np.random.randint(0,10,size=100))
s1.plot()
# 绘制多条股票变化趋势
# 在同一个cell中,绘制多个对象的图
s2 = Series(data=np.random.randint(0,100,size=100))
s2.cumsum().plot()
s1.cumsum().plot()
- 图例的位置可能会随着数据的不同而不同
柱状图
Series柱状图示例,kind = 'bar'/'barh'
s1 = Series(data=[100,80,99,80,78,76,22,90,100],index=list('123456789'))
s1.plot(kind='bar')
DataFrame柱状图示例,
df1 = DataFrame(data=np.random.randint(50,100,size=(9,3)),columns=list('ABC'),index=list('123456789'))
df1.plot(kind='bar')
# 改变方向
df1.plot(kind="barh")
直方图
series示例,kind='hist'
s1 = Series(data=np.array([1,1,4,1,3,5,8,8,5,5]))
s1.plot(kind='hist',bins=10)
# 不同的bins,会导致直方图显示的不一样
rondom生成随机数百分比直方图,调用hist方法
- 柱高表示数据的频数,柱宽表示各组数据的组距
- 参数bins可以设置直方图方柱的个数上限,越大柱宽越小,数据分组越细致
- 设置normed参数为True,可以把频数转换为概率
kde图:核密度估计,用于弥补直方图由于参数bins设置的不合理导致的精度缺失问题
s1.plot(kind='hist',bins=3,normed=True)
s1.plot(kind='kde')
示例: 绘制一个由两个不同的标准正态分布组成的双峰分布
n1 = np.random.normal(loc=50,scale=1,size=100)
n2 = np.random.normal(loc=70,scale=3,size=50)s = Series(data=np.concatenate((n1,n2)))
s.plot(kind='hist',normed=True,bins=30)
s.plot(kind='kde')
散点图
散布图 散布图是观察两个一维数据数列之间的关系的有效方法,DataFrame对象可用
使用方法: 设置kind = ‘scatter’,给明标签columns
散布图矩阵,当有多个点时,两两点的关系
使用函数:pd.plotting.scatter_matrix(),
- 参数diagnol:设置对角线的图像类型
x = Series(data=[1,3,5,7,9])
y = Series(data=[2,4,6,8,10])df = DataFrame(data = np.random.randint(0,10,size=(5,2)),columns=['A','B'])
df.A = x
df.B = y
df.plot(kind='scatter',x='A',y='B')
df2 = DataFrame(data=np.random.randn(10000,4),columns=list('ABCD'))
# DataFrme多列对应关系
# diagonal='kde' 设置对角线的图形显示模式
r = pd.plotting.scatter_matrix(df2,diagonal='kde')
jupyter入门之图像处理相关推荐
- 计算机视觉入门之图像处理<六>:图像锐化处理
往期文章回顾: 计算机视觉入门之<零> 计算机视觉入门之图像处理<一>:图像处理基础概念 计算机视觉入门之图像处理<二>:图像处理基础概念 计算机视觉入门之图像处理 ...
- jupyter入门之Matplotlib
jupyter入门之Matplotlib 一. Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 轴标签 axisLabel 水平和垂直 ...
- JC-6、OpenCV+Tensorflow入门人工智能图像处理
目录 Beginner 1. Anaconda下载与环境搭建 2. 计算机视觉入门 hello world 2.1. OpenCV基础操作 2.1.1. 图片的读取与展示 2.1.2. OpenCV中 ...
- 图像入门——3. 图像处理的视觉基础与应用
图像的颜色模型 颜色是视觉系统对可见光的感知结果.可见光是波长在380nm-780nm之间的电磁波. 我们看到的大多数光不是一种波长的光,而是由许多不同波长的光组合成的.人的视网膜有对红.绿.蓝颜色敏 ...
- PyQt5高速入门(图像处理界面),期末作业好帮手(上)
本教程仅适用于PyQt5零基础入门选手应付作业使用,不包含任何原理及扩展,核心为糊弄学大师的养成.下面将基于一个图像处理案例,讲述如何高速入门PyQt5. 工具准备 需要下载: 1. Pyt ...
- 3- OpenCV+TensorFlow 入门人工智能图像处理-TensorFlow入门
tensorflow基础入门 思考一个问题: 如何刚好学习TensorFlow 类比为一门开发语言,学会语法,api的调用, 原理性掌握. 语言的要素: 基础数据类型 运算符 流程 字典 数组 imp ...
- Java美颜相机入门(图像处理实现各种滤镜算法)
一.思路分析 一款简易美颜相机的功能我们可以简单分为两大块:1.图像处理 2.功能区 最终的效果图如下: 二.代码分析 图像处理工具的本质是处理像素点,而像素点的本质就是一种颜色,每一个像素点都 ...
- 一篇入门数字图像处理
数字图像处理 图像处理基础 概述 什么是图像 通过成像系统拍摄,数字化之后二维数组就是一个图像 如何访问图像 图像有单通道和多通道(比如rgb)之分,访问时只需要以多维数组的形式访问即可 图像仿射变换 ...
- python用opencv实现图片的美白磨皮_12 - OpenCV+TensorFlow 入门人工智能图像处理-磨皮美白-多智时代...
磨皮美白 上节课的+固定值,我们还可以变为乘以一个系数. foriinrange(0,height):forjinrange(0,width): (b,g,r)=img[i,j] bb=int(b*1 ...
最新文章
- 命令行批量截图Node脚本
- oracle传date参数十二小时,Oracle数据库中 to_date()与24小时制表示法及mm分钟的显示...
- 如何用Pygame写游戏(五)
- 对硬盘做镜像,按位与按文件有什么区别?
- 决策树之分类树快速理解
- 利用Auto Deploy 部署ESXi 5
- 搭建NodeJS环境
- bzoj 1650: [Usaco2006 Dec]River Hopscotch 跳石子(二分)
- response.sendRedirect 报 java.lang.IllegalStateException 异常的解决思路
- 第一章:x264视频制作meGUI工具下载
- 阿里mPaaS闪退埋点字段含义
- 程矢Axure夜话:Axure手机原型视频教程之图形解锁
- DOtween 教程
- ubuntu18下查看opencv版本、多版本之间的共存,切换、下载地址
- matlab修改证件照背景颜色
- 不知如何选股?不知哪种指标策略可靠?量化分析比较DMA、DMI、MACD、KDJ、BOLL指标策略收益情况
- 一步一步学网络爬虫(从python到scrapy)
- python中的保存文件,自用
- HP C7000刀片服务器学习一
- procreate笔刷ipad绘画软件教程字体 色卡 素材水彩 人物油画下载