Skimage入门

Skimage入门

现在课程有门课搞机器视觉,老师让我们玩玩OpenCV,想起之前接触过skimage,比较简洁。就温故而知新喽!
先理一下结构。

子模块名称主要实现功能
io读取、保存和显示图片或视频
data提供一些测试图片和样本数据
color颜色空间变换
filters图像增强、边缘检测、排序滤波器、自动阈值等
draw操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等
transform几何变换或其它变换,如旋转、拉伸和拉东变换等
morphology形态学操作,如开闭运算、骨架提取等
exposure图片强度调整,如亮度调整、直方图均衡等
feature特征检测与提取等
measure图像属性的测量,如相似性或等高线等
segmentation图像分割
restoration图像恢复
util通用函数

skimage里的图片数据存储格式为ndarray哦!

1.读取文件数据

skimage.data里有样例图片,可以直接拿来用。图片显示依赖于plt,不像opencv有独立的imshow出来的窗口

import matplotlib.pyplot as plt
from skimage import data

cat = data.chelsea()
print("shape:{}".format(cat.shape))
print(cat.min(), cat.max())
plt.imshow(cat)
plt.colorbar()
cat[10: 110, 10: 110, :] = [0, 255, 0]
plt.imshow(cat)
plt.show()

在这里插入图片描述
当然,要读取自己的图片也是ok的。

image = io.imread("s.png")
io.imsave('nice', image)

2.直方图操作

画直方图
这里当然也可以直接使用plt.hist()函数直接画

img = data.camera()
hist, bin_centers = exposure.histogram(img)
# hist是该统计点的总数,bin_centers是统计点
# shape为(256,)
plt.fill_between(bin_centers, hist)
plt.show()

直方图均衡

from skimage import exposure

equal = exposure.equalize_hist(img)
plt.hist(equal.flatten(), bins=256)

high_contrast = exposure.rescale_intensity(img, in_range=(10, 180))
# 加亮,提高对比度

3.滤波

from skimage.filters.rank import median

med1 = median(img, disk(3))
med2 = median(img, disk(5))
fig, axx = plt.subplots(ncols=3, figsize=(15, 10))
axx[0].imshow(img, cmap='gray')
axx[1].imshow(med1, cmap='gray')
axx[2].imshow(med2, cmap='gray')
fig.show()

稍微复习一下就行了,主角还是OpenCV啊!
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值