OpenCV笔记整理【pyplot模块】

1. 介绍:

Matplotlib 是 Python 的绘图库,是一个非常强大的 Python 画图工具,可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。
Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。

引入pyplot模块: import matplotlib.pyplot as plt

2. 使用plot函数绘制:

plt.plot (x, y, ‘style’)

  • x::绘制点的x坐标或者数组。
  • y:绘制点的y坐标或者数组。
  • ‘style’:绘制的样式:
    {
    颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色。
    线型参数:’‐’ 实线,’‐‐’ 破折线,’‐.’ 点划线,’:’ 虚线。
    标记字符:’.’ 点标记,‘o’ 实心圈标记,‘v’ 倒三角标记,’^’ 上三角标记,’>’ 右三角标记,’<’ 左三角标记。
    }

绘制线段,上代码:

import matplotlib.pyplot as plt
import numpy as np

# 准备xy轴数据
xpoints = np.array([1,3,5,6,8])
ypoints = np.array([3,4,6,9,10])
# 绘制
plt.plot(xpoints, ypoints,"r--o") # style:红色的虚线,坐标点为圆形实心。
plt.show()

运行:
在这里插入图片描述
只绘制点,不绘制线段

plt.plot(xpoints, ypoints,"ro") # style:绘制红色的实心圆点

运行:
在这里插入图片描述
绘制正余弦,上代码:

import matplotlib.pyplot as plt
import numpy as np

# 获取0-12.56之间,间隔0.1的数
x = np.arange(0, 4*np.pi, 0.1)   # start,stop,step
si = np.sin(x)
co = np.cos(x)
plt.plot(x,si,'r-.', x,co,'g-.')
plt.show()

运行:
在这里插入图片描述

2. 使用title()函数设置标题、使用label()函数设置轴标签:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([1,2,3,4,5,6])
plt.plot(ypoints,"b--o")

plt.title("this is title") # 设置标题
plt.xlabel("this is x - axis") # 设置x轴标签
plt.ylabel("this is y - axis") # 设置y轴标签

plt.show()

运行:
在这里插入图片描述

3. 使用grid()函数绘制网格:

  • plt.grid(axis=‘x’) # 设置 y 就在轴方向显示网格线
  • plt.grid(color = ‘color’, linestyle= ‘linestyle’, linewidth = number) # 设置xy方向显示网格线
    {
    color:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,’#008000’ RGB 颜色符串。
    linestyle:’‐’ 实线,’‐‐’ 破折线,’‐.’ 点划线,’:’ 虚线。
    linewidth:设置线的宽度,可以设置一个数字。
    }

上代码:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([1,2,3,4,5,6])
plt.plot(ypoints,"b--o")

plt.grid(color = 'r', linestyle = '--', linewidth = 0.5)
plt.show()

运行:
在这里插入图片描述

4. 使用subplot()函数占坑、使用imshow()函数显示:

plt.subplot (rows,cols,index)

  • rows:子窗体行数。
  • cols:子窗体的列数。
  • index:当前要插入的索引。
    在这里插入图片描述

plt.imshow ( img, cmap )

  • img:图像来源。
  • cmap:色彩空间。默认使用RGB顺序,但是OpenCV中默认读取图像的顺序是BGR, 对于彩色图像,读取到的图像需要使用 cv2.cvtColor (img, cv2.COLOR_BGR2RGB) 函数先进行转换。对于灰度图像,需要先使用
    cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 转换为灰度图,然后imshow() 函数中需要设置 cmap=plt.cm.gray 属性。

显示彩色图像,上代码:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('image\\girl.bmp')
imgRGB=cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 第一:将BGR转换为RGB

# 错误显示
plt.subplot(121) # 121表示1行2列,第一个坑位
plt.imshow(img),plt.axis('off') 
plt.title("channel error")

# 正确显示
plt.subplot(122)
plt.imshow(imgRGB),plt.axis('off')
plt.title("channel normal")

运行:
在这里插入图片描述

显示灰度图像,上代码:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('image\\girl.bmp')
gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 第一:转换为灰度图像

# 错误显示
plt.subplot(121)
plt.imshow(img),plt.axis('off')
plt.title("channel error")

# 正确显示
plt.subplot(122)
plt.imshow(gray,cmap=plt.cm.gray),plt.axis('off') # 第二:设置色彩空间属性【plt.cm.gray_r 表示黑白反转】
plt.title("channel normal")

运行:
在这里插入图片描述

5. 使用hist() 函数显示灰度直方图:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('image\\equ.bmp',cv2.IMREAD_GRAYSCALE)
equ = cv2.equalizeHist(img)

plt.subplot(221),plt.imshow(img,cmap=plt.cm.gray),plt.axis('off'),plt.title("original")
plt.subplot(222),plt.imshow(equ,cmap=plt.cm.gray),plt.axis('off'),plt.title("equal")

# hist函数中传入一个一维数组,和分组子集
plt.subplot(223),plt.hist(img.ravel(),256),plt.title("original hist")
plt.subplot(224),plt.hist(equ.ravel(),256),plt.title("original hist")

运行:
在这里插入图片描述

撒悠啦啦.。。。。。。。。。。。。。。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值