点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

scikit-image概述与安装

skimage是纯python语言实现的BSD许可开源图像处理算法库,主要的优势在于:

  • 提供一套高质量易用性强的图像算法库API

  • 满足研究人员与学生学习图像处理算法的需要,算法API参数可调

  • 满足工业级应用开发需求,有实际应用价值

scikit-image主要模块如下:

官方主页

https://scikit-image.org/

安装

pip install scikit-image

代码教程

导入支持的模块

from skimage import data, io, filters, feature, segmentation
from skimage import color, exposure, measure, morphology, draw
from matplotlib import pyplot as plt
from skimage import transform as tf

从data中获取测试图像与数据并显示

image = data.chelsea()
io.imshow(image)
io.show()

这个是开源作者养的宠物猫

灰度转换

gray = color.rgb2gray(image)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()ax[0].imshow(image)
ax[0].set_title("Input RGB")
ax[1].imshow(gray, cmap=plt.cm.gray)
ax[1].set_title("gray")fig.tight_layout()
plt.show()

通道分离操作

hsv_img = color.rgb2hsv(image)
hue_img = hsv_img[:, :, 0]
value_img = hsv_img[:, :, 2]fig, (ax0, ax1, ax2) = plt.subplots(ncols=3, figsize=(8, 2))
ax0.imshow(image)
ax0.set_title("RGB image")
ax0.axis('off')
ax1.imshow(hue_img, cmap='hsv')
ax1.set_title("Hue channel")
ax1.axis('off')
ax2.imshow(value_img)
ax2.set_title("Value channel")
ax2.axis('off')fig.tight_layout()
plt.show()

滤波操作

image = data.chelsea()
gray = color.rgb2gray(image)
blur = filters.gaussian(image, 15)
usm = filters.unsharp_mask(image, 3, 1.0)
sobel = filters.sobel(gray)
prewitt = filters.prewitt(gray)
eh = exposure.equalize_adapthist(gray)
lapl = filters.laplace(image, 3)
median = filters.median(gray)

图像二值化处理

image = io.imread("D:/images/dice.jpg")
gray = color.rgb2gray(image)
ret = filters.threshold_otsu(gray)
print(ret)

轮廓发现

binary = gray > ret
ax[0].imshow(gray > ret, cmap='gray')
ax[0].set_title("binary")
contours = measure.find_contours(binary, 0.8)
for n, contour in enumerate(contours):ax[1].plot(contour[:, 1], contour[:, 0], linewidth=2)
ax[1].set_title("contours")

Canny边缘

image = io.imread("D:/images/master.jpg")
gray = color.rgb2gray(image)
edge = feature.canny(gray, 3)

骨架提取

image = data.horse()
gray = color.rgb2gray(image)
ret = filters.threshold_otsu(gray)
binary = gray < ret
skele = morphology.skeletonize(binary)

harris角点检测

image = io.imread("D:/images/home.jpg")
gray = color.rgb2gray(image)
coords = feature.corner_peaks(feature.corner_harris(gray), min_distance=5)

BRIEF特征匹配

keypoints1 = corner_peaks(corner_harris(img1), min_distance=5)
keypoints2 = corner_peaks(corner_harris(img2), min_distance=5)
keypoints3 = corner_peaks(corner_harris(img3), min_distance=5)extractor = BRIEF()
extractor.extract(img1, keypoints1)
keypoints1 = keypoints1[extractor.mask]
descriptors1 = extractor.descriptorsextractor.extract(img2, keypoints2)
keypoints2 = keypoints2[extractor.mask]
descriptors2 = extractor.descriptorsextractor.extract(img3, keypoints3)
keypoints3 = keypoints3[extractor.mask]
descriptors3 = extractor.descriptorsmatches12 = match_descriptors(descriptors1, descriptors2, cross_check=True)
matches13 = match_descriptors(descriptors1, descriptors3, cross_check=True)

上述同时显示两张图像的相似代码

fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()ax[0].imshow(image)
ax[0].set_title("Input RGB")
ax[1].imshow(gray > ret, cmap='gray')
ax[1].set_title("binary")
ax[0].axis('off')
ax[1].axis('off')fig.tight_layout()
plt.show()

完整的演示代码下载地址

https://github.com/gloomyfish1998/opencv_tutorial/blob/master/python/ski_image_demo.py

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

scikit-image图像处理入门相关推荐

  1. 免费送书啦!《 OpenCV图像处理入门与实践》一本全搞定

    OpenCV 的基础图像操作都只是针对图像中的像素点,并不是直接对图像整体进行的操作.而很多时候并不能仅通过改变像素点来进行图像的操作,为此我们需要学习关于图像的算术操作. 1.图像加法 对于两张相同 ...

  2. 图像处理入门 100 题,有人把它翻译成了中文版!

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 但是,这份资源教程是由日本人写的,日文版,读起来非常不方便.好消息,最近我在逛 GitHub ...

  3. [Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. c#图像处理入门(-bitmap类和图像像素值获取方法)

    c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义 ...

  5. 职业:图像处理入门教程

    公司里有哥们想学图像处理,认为这东西看起来挺简单,应该可以很快入门进阶.他人之心,吾忖度之,不能再忖度了,否则会变成以小人之心度君子之腹.所以,应哥们的要求,我给他介绍一个图像处理入门教程.看起来入门 ...

  6. opencvpython教程百度云资源_Python+OpenCV图像处理入门,视频教程下载

    课程介绍: 李老师讲课生动.深入浅出,出版OpenCV编程案例详解.Python-OpenCV图穷录.MATLAB图像处理.MATLAB图像案例教程等在线课程. 本课程系统概括了Python-Open ...

  7. c++opencv显示中文_图像处理入门 100 题,有人把它翻译成了中文版!

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 之前,我发文推荐过一份图像处理入门 100 题,主要针对图像处理的一些基本操作,非常适合入门! ...

  8. 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

    OpenCV图像处理入门学习教程系列,上一篇第五篇:基于背景差分法的视频目标运动侦测 一.网络爬虫简介(Python3) 网络爬虫,大家应该不陌生了.接下来援引一些Jack-Cui在专栏<Pyt ...

  9. 图像处理入门和UltraLAB P620系列全能型、高性能、静音级便携工作站

    一.图像处理的应用 1.身份认证 21世纪是刷脸的时代,这一点无可厚非.首先是银行,据说重庆的银行已经使用了人脸识别的验证系统来进行辅助的认证.其次是门禁系统,以前是指纹,虹膜,现在就是人脸.指纹.虹 ...

  10. 图像处理入门100题(三)

    图像处理入门100题(三) 本篇记录了自己写的GIthub上的ImageProcessing 100 Wen的问题21-30的答案,注释里包含了一些自己的感悟.为了方便,注释是用英文写的. 进一步感受 ...

最新文章

  1. 在spring中使用自定义注解注册监听器
  2. c语言程序设计--图书管理系统
  3. [转]Angular2 Material2 封装组件 —— confirmDialog确定框
  4. codeforces 758 A
  5. iMazing比iTunes好用在哪些地方
  6. BOOST库介绍(八)——deadline_timer
  7. Springboot实现QQ授权登录
  8. php gd测试代码,PHP gd_info()用法及代码示例
  9. 用null_blk工具来实现模拟分区块设备
  10. 微信小程序实现保存影集和图片到相册
  11. android重启自身应用APP
  12. 2022-2027年中国共享自行车行业发展监测及投资战略研究报告
  13. 怎样将文件压缩并传到服务器,客户端上传压缩文件(zip)的思路和实现
  14. 设计模式之六大设计原则【入门】
  15. OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP
  16. 2017年中国程序员调查分析:大数据就业前景广阔
  17. 电子设计教程17:从共射极放大电路到射极跟随电路
  18. 以ansi ,gbk,gb2312格式进行base64 加密和 base64解密(防止中文乱码)
  19. 基于comsol软件弯曲单模光纤模拟仿真
  20. 服务器 交换机的维护,华为交换机系统维护与调试命令

热门文章

  1. 国内如何下载并使用LINE(免费提供apk安装包)
  2. 关于目前流行的 Redis 可视化管理工具的详细评测
  3. html5 圆圈扩散,CSS3地图动态实例代码(圆圈向外扩散)
  4. 什么是Spring、Spring的优点
  5. 你一年就工作一天还想请假......
  6. 算法导论-----最长公共子序列LCS(动态规划)
  7. linux下github上传文件,linux下将本地文件上传到github中?
  8. MATLAB中mat转换为xlsx表格数据
  9. 关于运行时错误429 ActiveX无法创建对象的错误
  10. ffmpeg:制作gif / 提取视频帧为图片