plt、cv2画图

plt画图

二维曲线图

import matplotlib.pyplot as plt
f, ax=plt.subplots()
ax.grid(True)
plt.ylim(0.75, 0.95)
Color = ['red', 'blue', 'cyan', 'green', 'black', 'yellow']
X = np.array(range(51))
Y = 2*X
ax.plot(X,Y, label='直线', color=Color[0],linewidth=2, linestyle='--')
#ax.plot(X,Y, label='直线', color=(1.0,0.0,0.0),linewidth=2, linestyle='--')
plt.ylabel("I am y")
plt.legend(['upper right']) #图例也就是label在图中的位置  lower right
plt.show()
plt.savefig('PCKh_people.png')
plt.close()

或者

import matplotlib.pyplot as plt
import numpy as np
plt.switch_backend('agg') 
x = np.linspace(-1,1,50)
y = 2*x + 1

plt.figure()
plt.plot(x,y)
plt.savefig("filename.png")
plt.show()

3d图像

def plot_3d(x,y,z, save_name):
    import matplotlib as mpl
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    mpl.rcParams['legend.fontsize'] = 10
    
    fig = plt.figure()
    ax = fig.gca(projection='3d')
   
    ax.plot(x, y, z, label='3d') #点间直线连接
    ax.legend()
    plt.savefig(save_name)

散点绘制

ax.scatter(xs, ys, zs, s=20, c=None, depthshade=True, *args, *kwargs)

xs,ys,zs:输入数据;
s:scatter点的尺寸
c:颜色,如c = 'r’就是红色;
depthshase:透明化,True为透明,默认为True,False为不透明
*args等为扩展变量,如maker = ‘o’,则scatter结果为’o‘的形状

cv2画点线

直线

import cv2
point1 = (0,0) #起点
point2 = (100,100) #终点
color = (0,255,0) #绿色
linewidth = 5 #线的宽度
cv2.line(img,point1,point2,color,linewidth)

矩形

point1 = (0,0) #左上角点
point2 = (100,100) #右下角点
color = (0,255,0) #绿色
linewidth = 5 #线的宽度
cv2.rectangle(img,point1,point2,color,linewidth)

圆圈、圆点

#圆圈
point = (100,100) #圆心
r =50 #半径
color = (0,255,0) #绿色
linewidth = 5 #线的宽度
cv2.circle(img,point,r,color,linewidth)
#圆点
r =4 #半径
linewidth = -1 #线的宽度,-1表示实心
cv2.circle(img,point,r,color,linewidth)

写字

在图片上写字(只能写英文)
各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细
字体大小:字体比例因子乘以font-specific基本大小,数值越大,字体越大
字体粗细:越大越粗,数值表示描绘的线条占有的直径像素个数

cls = 5
score = 0.91346
text_line = str(cls)+' '+('%.2f' % score)
cv2.putText(im, text_line, (point_x, point_y),  cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255,255,255), 1)

在图片上写字(可以写中文),需要提前下载中文字体

import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont

img_OpenCV = cv2.imread('01.jpg')
# 图像从OpenCV格式转换成PIL格式
img_PIL = Image.fromarray(cv2.cvtColor(img_OpenCV, cv2.COLOR_BGR2RGB))

# 字体  字体*.ttc的存放路径一般是: /usr/share/fonts/opentype/noto/ 查找指令locate *.ttc
#windows字体路径: C:\Windows\Fonts
font = ImageFont.truetype('NotoSansCJK-Black.ttc', 40)
# 字体颜色
fillColor = (255,0,0)
# 文字输出位置
position = (100,100)
# 输出内容
str = '在图片上输出中文'

# python2 需要先把输出的中文字符转换成Unicode编码形式
'''
if not isinstance(str, unicode):
    str = str.decode('utf8')
'''
draw = ImageDraw.Draw(img_PIL)
draw.text(position, str, font=font, fill=fillColor)
# 使用PIL中的save方法保存图片到本地
# img_PIL.save('02.jpg', 'jpeg')

# 转换回OpenCV格式
img_OpenCV = cv2.cvtColor(numpy.asarray(img_PIL),cv2.COLOR_RGB2BGR)
cv2.imshow("print chinese to image",img_OpenCV)
cv2.waitKey()
cv2.imwrite('03.jpg',img_OpenCV)  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值