全网首发图像可视化新利器Seaborn-image保姆级教程
Posted qq_21478261
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网首发图像可视化新利器Seaborn-image保姆级教程相关的知识,希望对你有一定的参考价值。
图像可视化在计算机视觉领域 (Computer Vision, CV) 非常常见,本次分享一个非常优质的Python图像可视化工具seaborn-image,代码量非常低。
Seaborn-image灵感源自Seaborn,风格如同Seaborn亲儿子🐶,强烈建议对比着Seaborn用,比如下文一直提到的Axes level/Figure level概念,多多参考👉Seaborn学会
目录
安装
pip install -U seaborn-image
二维图像可视化
主要使用seaborn_image.imgplot函数,Axes level方法,类似matplotlib.imshow,默认参数绘图,
import seaborn_image as isns
pol = isns.load_image("polymer") #倒入数据
ax = isns.imgplot(pol) #绘图
更多细节:为图像添加比例尺、colorbar、colormaps等等,
import seaborn_image as isns
isns.set_context(
"poster"
) #设置主题,包含 ‘paper’, ‘notebook’, ‘presentation’, ‘talk’,‘poster’,默认为 “paper”.
isns.set_image(cmap="inferno", ) #配色方案设置
pol = isns.load_image("polymer")
ax = isns.imgplot(
pol,
describe=True, #添加描述性统计
cbar_label="Height(nm)", #添加colorbar标题
cbar_ticks=[0, 15, 40], #设置colorbar刻度
orientation="v", #colorbar方向
cbar=True, #colorbar开启
**
"dx": 20,
"units": "nm"
, #添加比例尺
despine=True, #边框线开启
)
seaborn_image.imgplot — seaborn-image documentation
图像分布可视化
主要使用seaborn_image.imghist函数,Figure level方法,
import seaborn_image as isns
img = isns.load_image("polymer")
f = isns.imghist(
img,
#添加比例尺
dx=15,
units="nm",
cmap="inferno", #配色
cbar_label="Height (nm)",
)
RGB图像可视化
使用seaborn_image.rgbplot()函数,Figure level方法,将图像按图像的通道数(channels)可视化,
import seaborn_image as isns
from skimage.data import astronaut #加载示例图像
isns.set_image(origin="upper")
g = isns.rgbplot(
astronaut(),
height=3.5, #图像高度
aspect=1.0, #图像间距
cmap="inferno")
多维度图像可视化
使用seaborn_image.ImageGrid函数,Figure level方法,支持按指定切片、沿着某个轴、步长等方式切割多维度数据后可视化,
#导入数据
import seaborn_image as isns
from skimage import exposure
cells = isns.load_image("cells") #吃网速,可单独下载
#按指定切片切割3D数据
g = isns.ImageGrid(cells, slices=[10,20,30,40,50,55],cmap="inferno")
#按切片+指定轴切割3D数据
g = isns.ImageGrid(
cells,
slices=[10, 20, 30, 40, 50, 55],
axis=1, #指定轴
cmap="inferno",
height=2.5,
aspect=1,
)
#指定步长切割3D数据
g = isns.ImageGrid(
cells,
step=3,
start=10,
stop=40,
cbar=False,
cmap="inferno",
)
g = isns.ImageGrid(
cells,
cbar=False,
height=1,
col_wrap=10,#指定行显示数、图像大小
cmap="inferno",
)
多个图像集可视化
依旧使用seaborn_image.ImageGrid函数,此时传入两个数据集,对应参数个性化传入数组即可,
import seaborn_image as isns
pl = isns.load_image("fluorescence") #数据集1
polymer = isns.load_image("polymer") #数据集2
img_coll = [pl, polymer]
g = isns.ImageGrid(
img_coll,
cmap=["magma", "inferno"], #传入数组色度条
cbar_label=["PL Intensity", "Height (nm)"], #传入数组比例尺标题
dx=[0.1, 0.015], #传入数组比例尺
units="um",
height=5)
图像过滤方法一
使用seaborn_image.filterplot,Axes level方法,快速对图像做傅立叶变换,
import seaborn_image as isns
pol = isns.load_image("polymer")
ax = isns.fftplot(pol, cmap='inferno') #快速傅立叶变换
重点介绍filt参数修改Filter算法,filt调用seaborn_image算法,
isns.implemented_filters.keys()#输出seaborn_image可用filter算法
['sobel', 'gaussian', 'median', 'max', 'diff_of_gaussians', 'gaussian_gradient_magnitude', 'gaussian_laplace', 'laplace', 'min', 'percentile', 'prewitt', 'rank', 'uniform']
import seaborn_image as isns
pol = isns.load_image("polymer")
ax = isns.filterplot(pol, filt="median", size=5, cmap='inferno') #filt修改算法为median
filt调用skimage.filters中算法 ,
#调用skimage.filters中算法
from skimage.filters import scharr
ax = isns.filterplot(pol, filt=scharr, cmap='inferno')
图像过滤方法二
使用seaborn_image.FilterGridt函数,Figure level方法 ,多维度对图像做比较过滤,类似于seaborn中的图像分面,
import seaborn_image as isns
pol = isns.load_image("polymer")
g = isns.FilterGrid(
pol,
"median",
col="size", #按照size维度比较
size=[1, 2, 3, 6, 7, 9],
col_wrap=3,
cmap='inferno')
g = isns.FilterGrid(
pol,
"percentile",
row="percentile", #同时按照percentile维度比较
col="size", #及按照size维度比较
percentile=[3, 5, 7, 10],
size=[3, 5, 7, 10],
**
"dx": 15,
"units": "nm"
, #比例尺
cmap='inferno')
图像个性化设置
共五个函数,一一说来。
seaborn_image.set_context设置图像主题、字体、外框、调用matplotlib.rcParams参数等,
import seaborn_image as isns
isns.set_context(mode="poster", fontfamily="sans-serif") #图像主题poster,字体
isns.set_context(rc="axes.edgecolor": "red") #外框设置为红色
无set_context设置效果,
set_context使用后效果 ,
seaborn_image.set_image设置图像配色等,
import seaborn_image as isns
isns.set_image(cmap="deep", interpolation="bicubic") #设置色度条
isns.set_image(despine=True) #设置外框关闭、默认开启
from skimage.filters import scharr
ax = isns.filterplot(pol, filt=scharr)
其它seaborn_image.set_scalebar设置colorbar、seaborn_image.set_save_context设置图像保存的时的分辨率等参数、seaborn_image.reset_defaults恢复设置为matplotlib默认参数,不一一介绍。
参考:https://github.com/SarthakJariwala/seaborn-image
小结
如果你苦于Matplotlib、选择了Seaborn,那么一定要去学一下seaborn-image,小编目前遇到最简单的图像可视化工具。
seaborn-image超详细文档.PDF下载:👇【首发】Python图像可视化新利器Seaborn-image保姆级教程
以上是关于全网首发图像可视化新利器Seaborn-image保姆级教程的主要内容,如果未能解决你的问题,请参考以下文章