python数字图像处理(2):图像的读取、显示与保存

skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用。

引入skimage模块可用:

?
1
from skimage import io

一、从外部读取图片并显示

读取单张彩色rgb图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。

from skimage import io
img=io.imread('d:/dog.jpg')
io.imshow(img)

读取单张灰度图片,使用skimage.io.imread(fname,as_grey=True)函数,第一个参数为图片路径,第二个参数为as_grey, bool型值,默认为False

from skimage import io
img=io.imread('d:/dog.jpg',as_grey=True)
io.imshow(img)

二、程序自带图片

skimage程序自带了一些示例图片,如果我们不想从外部读取图片,就可以直接使用这些示例图片:

astronaut

宇航员图片

coffee

一杯咖啡图片

lena

lena美女图片

camera

拿相机的人图片

coins

硬币图片

moon

月亮图片

checkerboard

棋盘图片

horse

马图片

page

书页图片

chelsea

小猫图片

hubble_deep_field

星空图片

text

文字图片

clock

 时钟图片

immunohistochemistry

结肠图片

 

 

显示这些图片可用如下代码,不带任何参数

from skimage import io,data
img=data.lena()
io.imshow(img)

图片名对应的就是函数名,如camera图片对应的函数名为camera(). 这些示例图片存放在skimage的安装目录下面,路径名称为data_dir,我们可以将这个路径打印出来看看:

from skimage import data_dir
print(data_dir)

显示为: D:\Anaconda3\lib\site-packages\skimage\data

也就是说,下面两行读取图片的代码效果是一样的:

from skimage import data_dir,data,io
img1=data.lena()  #读取lean图片
img2=io.imread(data_dir+'/lena.png')  #读取lena图片

三、保存图片

使用io模块的imsave(fname,arr)函数来实现。第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量。

from skimage import io,data
img=data.chelsea()
io.imshow(img)
io.imsave('d:/cat.jpg',img)

保存图片的同时也起到了转换格式的作用。如果读取时图片格式为jpg图片,保存为png格式,则将图片从jpg图片转换为png图片并保存。

四、图片信息

如果我们想知道一些图片信息,可以在spyder编辑器的右上角显示:

也可以直接以程序方式打印输出

from skimage import io,data
img=data.chelsea()
io.imshow(img)
print(type(img))  #显示类型
print(img.shape)  #显示尺寸
print(img.shape[0])  #图片高度
print(img.shape[1])  #图片宽度
print(img.shape[2])  #图片通道数
print(img.size)   #显示总像素个数
print(img.max())  #最大像素值
print(img.min())  #最小像素值
print(img.mean()) #像素平均值

结果输出:

<class 'numpy.ndarray'>
(300, 451, 3)
300
451
3
405900
231
0
115.305141661

opencv img.shape相关推荐

  1. 计算机视觉库OpenCV中shape和resize函数的区别

    OpenCV官网说明:(shape为图片(高度,宽度,通道数)) Image properties include number of rows, columns and channels, type ...

  2. opencv的shape函数

    转自https://blog.csdn.net/qingyuanluofeng/article/details/51568741 有一张图片宽度*高度是300*100,用opencv的img.shap ...

  3. 视频解码opencv、ffmpeg、decord三种方式速度对比

    在做视频理解和视频相关的项目都绕不开视频解码的过程,本文对比了三种视频解码的方法,仅供参考. # -*- coding: utf-8 -*- # @Time : 2020年9月30日16:01:40 ...

  4. TorchVision中通过AlexNet网络进行图像分类

    TorchVision中给出了AlexNet的pretrained模型,模型存放位置为https://download.pytorch.org/models/alexnet-owt-4df8aa71. ...

  5. TorchVision中使用FasterRCNN+ResNet50+FPN进行目标检测

    TorchVision中给出了使用ResNet-50-FPN主干(backbone)构建Faster R-CNN的pretrained模型,模型存放位置为https://download.pytorc ...

  6. Opencv-python圆盘指针仪表检测

    文章目录 1. 问题和思路说明 2. 注意点 2.1 Opencv读取图片矩阵 rows cols以及height width的关系 2.2 opencv和numpy数组长宽对应的问题 2.3 结论 ...

  7. ONNX Runtime介绍

          ONNX Runtime:由微软推出,用于优化和加速机器学习推理和训练,适用于ONNX模型,是一个跨平台推理和训练机器学习加速器(ONNX Runtime is a cross-platf ...

  8. python opencv 如何获取图像的尺寸(宽高)(分辨率)(大小)img.shape

    示例,获取文件夹中一张名为IMG_20200403_203742.jpg图片的分辨率 # -*- coding: utf-8 -*- """ @File : 如何获取图像 ...

  9. 【OpenCV 例程200篇】05. 图像的属性(np.shape)

    [OpenCV 例程200篇]05. 图像的属性(np.shape) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  10. 关于opencv不能调用本地摄像头,报错没有shape属性

    这里有一段经典摄像头打开并显示画面的代码 import cv2cap = cv2.VideoCapture(0)while(1):# 获得图片ret, frame = cap.read()# 展示图片 ...

最新文章

  1. RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
  2. 教你用树莓派打造一个家庭影院
  3. 苹果手机透明桌面_打开手机这个设置,桌面变全透明!
  4. Jmeter当获取正则表达式匹配数字为负数时获取所有匹配的值
  5. 多语言报表的改动方法
  6. 技术分享 | CodeReview主要Review什么?
  7. Spring Cloud Gateway Predicate.Path过滤分析
  8. c 服务器文件路径,c打开服务器文件路径
  9. 我的世界pc正版好玩的服务器,都来看看好玩的服务器
  10. 在鼠标点击的位置 ,添加一个div ,类似手表右键菜单
  11. PostmanCn: Postman中文版
  12. 手机上不了电信宽带连接服务器无响应怎么办,当网页都打不开该怎么办?
  13. 根据身高体重计算BMI指数 - scala
  14. 网站频繁抓取IP被封
  15. gensim使用汇总
  16. 【C51单片机】PC机控制单片机
  17. OpenFlow简单介绍
  18. Shell/Linux使用Jq操作Json
  19. Docker从入门到放弃-----Dockerfile常用命令解析与实战(使用docker制作一个开箱即用的consul镜像)
  20. 都2021年了,为什么想回看5分钟前写的代码就这么难

热门文章

  1. 先试试这一招,再决定是否要撬开拉杆箱的密码锁——巧开密码锁
  2. SSD算法详解default box
  3. 计算机教师的幸福,有关信息技术教师教育感言
  4. ctf解题--算术题
  5. 夜神安卓模拟器adb命令详解
  6. 股票、基金、场内ETF基金下载数据代码例子
  7. Nim理论初探——编程之美1.12
  8. 人工智能和自动化之间,主要有区别吗?
  9. 【web前端面试题整理07】我不理解表现与数据分离
  10. 家庭版Windows10/Windows11不支持远程桌面