使用python进行图像处理编程很方便,读取图片,显示图片,保存图片


1、opencv
2、PIL(pillow)
3、matplotlib
4、scipy
5、skimage


1、opencv图片基本操作

图片就是矩阵,矩阵就是图片 真彩图片是BGR格式
重要的事情说三遍:用opencv读取的图片格式是numpy!!!彩色图片维度是(高度,宽度,通道数)!!!数据类型是uint8!!!
代码如下:

import cv2
import numpy as np  img_name = r"C:\Users\Administrator\Desktop\machine_learning\face_study\pos\1.jpg"
img = cv2.imread(img_name)      # 读取图片
cv2.imshow("figure1", img)      # 显示图片
filename = img_name             # 保存图片的文件
cv2.imwrite(filename, img)      # 保存图片# h: 高  w: 宽  c:  通道数
h , w, c = img.shape
print(img.shape)   # (h, w, c)
# 显示图像的上面一半
cv2.imshow("figure1_up", img[0:(int)(h/2)])
# cv2.imshow("figure1_up", img[0:(int)(h/2),:,:])   # 等价于上面一行代码
cv2.waitKey()

opencv的坑

别跳!!!
opencv对于读进来的图片的通道排列是BGR,而不是主流的RGB!谨记!

#opencv读入的矩阵是BGR,如果想转为RGB,可以这么转
img4 = cv2.imread('1.jpg')
img4 = cv2.cvtColor(img4,cv2.COLOR_BGR2RGB)

2、PIL图片处理基本操作

PIL是矩阵进行封装的东西

from PIL import Image
import numpy as npimg = Image.open(img_name)
img.show() # 显示图片gray = Image.open(img_name).convert('L')
gray.show()print(img.format)
print(img.size)  # 注意,省略了通道 (w,h)
print(img.mode)  # L为灰度图,RGB为真彩色,RGBA为加了透明通道# pillow读进来的图片不是矩阵,我们将图片转换为矩阵
arr = np.array(img)
print(arr.shape)
print(arr.dtype)
print(arr)# 矩阵再转换为图片
new_img = Image.fromarray(arr)
new_img.save("1.jpg")cv2.waitKey()

3、matplotlib图片操作教程

图片就是矩阵,矩阵就是图片 真彩图片是RGB格式

plt.imread读入的就是一个矩阵,跟opencv一样,但彩图读进的是RGB,与opencv有区别

无论用什么库读入函数,只要将读入的图片转换为矩阵,就可以用matplotlib进行操作


import matplotlib.pyplot as plt
import numpy as npimg_name = r"C:\Users\Administrator\Desktop\machine_learning\face_study\pos\1.jpg"
image = plt.imread(img_name)   # 读取图片
plt.imshow(image)              # 显示图片
plt.axis('off')
plt.savefig("1.jpg")           # 保存图片
plt.show()#plt.imread读入的就是一个矩阵,跟opencv一样,但彩图读进的是RGB,与opencv有区别
print(image.shape) # (h,w,c)
print(image.size)
print(image.dtype)
print(image)

说明:对于matplotlib矩阵就是图片 图片就是矩阵

import numpy as np
import matplotlib.pyplot as pltimg = np.zeros((2,2,3),dtype=np.uint8)img[0,0] = [255,0,0]      # 红色
img[0,1] = [0,255,0]      # 绿色
img[1,0] = [0,0,255]      # 蓝色plt.imshow(img)
plt.show()


Python中图片基本处理操作相关推荐

  1. Python中常用的一些操作总结(未完待续)update @ 2017-5-18

    写在前面的话 其实也没有什么可以写的,或者说完全没有价值.因为你只要动一动手指就可以在Google上找到我要写的这些东西.只是我还不习惯好久没有碰我的blog,但是我又不想写没有价值的东西.或许有价值 ...

  2. python对excel某一列去重-「总结篇」Python中所有的Excel操作技巧

    原标题:「总结篇」Python中所有的Excel操作技巧 Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import ...

  3. python使用方法-在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  4. python脚本怎么使用_在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  5. Python中的数据遍历操作

    1 前言 今天在学习FaceBoxes~ 看到一个语句不是很懂, 就是这里面的zip操作,感觉Python中的数据遍历的语句还是挺多样的,于是想着用笔记记录一下~ 2 Python中的数据遍历操作 2 ...

  6. Python中有关文件的操作

    Python中有关文件的操作 1.文件路径的书写 import os #这里返回的值是字符串 path = os.path.join(root_dir,file_dir) 2.列出文件夹中的文件 im ...

  7. Python中的File(文件)操作

    Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...

  8. 详解Python中的File(文件)操作

    目录 Python中的File(文件)操作 写入文件的操作: 读取文件的操作: 一.文件操作相关函数 1. open() 打开文件 2. seek() 设置文件指针的位置 3. write() 写入内 ...

  9. Neo4j离线环境搭建与基于python中py2neo的简单操作

    Neo4j离线环境搭建与基于python中py2neo的简单操作 1 安装与配置 1.1 Neo4j安装 1.2 python操作环境配置 2 Neo4j操作 2.1 创建: 创建点 创建点边: 2. ...

最新文章

  1. RED HAT LINUX 9.0的安装文本模式(2)
  2. 逆向去除winrar广告
  3. 第十届蓝桥杯c语言b组试题,2019年第十届蓝桥杯(决赛)国赛B组C++(B)
  4. Solidity的Bytecode和Opcode简介
  5. 给你的执行力马上充值
  6. 比特币的缺陷以及改进
  7. 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...
  8. RabbitMq(十七)rabbitmq的四种集群监控
  9. 【BZOJ4547】【HDU5171】小奇的集合,暴力+矩阵乘法
  10. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
  11. 浅析.NET中的引用类型和值类型(上)
  12. CUDA编程:与OpenCV结合
  13. ORA-00257: archiver error. Connect internal only, until freed——解决
  14. 继电保护原理5-变压器保护
  15. 大华linux密码,大华ME-S-S系列双SD卡车载DVR
  16. 04、Flutter FFI 字符串
  17. 平面广告设计课程中发散思维训练
  18. 天天向上的力量python代码解释_python天天向上的力量
  19. 2021总结2022规划
  20. 图片批量重命名方法(超详细 无需辅助软件 本地运行)

热门文章

  1. 设计模式之领航篇高内聚和低耦合
  2. (信贷风控十)催收评分卡的介绍
  3. 计算机应用基础案例教程习题答案,新编计算机应用基础案例教程上机指导与习题集(朱尽蓉)-习题答案.doc...
  4. XI 学习笔记 - 一些典型场景的练习
  5. 时刻鼓舞自己的话 当心情不好时就看看
  6. mysql常用语句【转载】
  7. 华氏度与摄氏度转换(引入了float函数)
  8. 局域网安全----接入层安全
  9. DRAM和SRAM的区别
  10. rate和ratio在用法上的区别(转)