一帧数据 typeScript Android防重复点击 接口测试 tws mirror vim复制 resultMap SCI hive gtk Component oracle删除字段 linux自动获取ip matlab图像滤波 excel加减混合求和 python模块 python教学 pythonassert函数 python3教程 python创建数据库 java操作mysql java基本类型 java字符串替换 java读取文本 磁盘分区软件 shutil js获取父节点 netreflector 自动答题软件 深渊碎片 cdr字体加粗 脚本网站 mtu设置多少最好 php随机数函数 现代操作系统 b450 圣武枪魂 淘宝店铺会员 redis密码设置 什么是内存条
当前位置: 首页 > 学习教程  > python

Python---数字图像处理:opencv;读取视频;PIL,颜色转换;轮廓图;直方图

2021/2/7 9:55:36 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

1.opencv-python读取、展示、存储图像 #opencv-python读取、展示、存储图像 import cv2 imgcv2.imread("Tom.jpg") #读取,这个文件得在原文件夹中 cv2.imshow(image,img) #展示 cv2.imwrite(Tom.bmp,img) #保存为运行结果: 2.读取视频文…

1.opencv-python读取、展示、存储图像

#opencv-python读取、展示、存储图像
import cv2
img=cv2.imread("Tom.jpg")   #读取,这个文件得在原文件夹中
cv2.imshow('image',img)   #展示
cv2.imwrite('Tom.bmp',img)   #保存为
 

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

2.读取视频文件TEXT.mp4,把视频的每一帧保存为jpg文件

#读取视频文件TEXT.avi,把视频的每一帧保存为jpg文件

import cv2,os
os.mkdir("source")  #在当前目录创建新目录source
video=cv2.VideoCapture("TEXT.mp4")
L=int(video.get(cv2.CAP_PROP_FRAME_COUNT))  #计算视频帧数
for i in range(L-1):
    ret,frame=video.read()   #获取图像尺寸
    cv2.imshow('Frame',frame)  #展示
    c=cv2.waitKey(2)  #停顿2毫秒
    cv2.imwrite("source\\"+str(i)+".jpg",frame)   #另存为
    if c == 27:   #ESC对应的ASCII,即退出
        break
video.release()
cv2.destroyAllWindows()   #关闭所有窗口

                       

                       

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

3.查看所有颜色空间转换方法

#查看所有颜色空间转换方法
import cv2
flags=[i for i in dir(cv2) if i.startswith('COLOR_')]
print(flags)
       

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

4.九种颜色转换实例

#颜色转换实例
import matplotlib.pyplot as plt,cv2
img_BGR=cv2.imread('flower.png')   #BGR
plt.subplot(3,3,1)   #窗口
plt.imshow(img_BGR)  #展示
plt.axis('off')   #关闭坐标刻度和坐标轴
plt.title('BGR')

img_RGB=cv2.cvtColor(img_BGR,cv2.COLOR_BGR2RGB)    #BRG-->RGB
plt.subplot(3,3,2)  #窗口
plt.imshow(img_RGB)
plt.axis('off')
plt.title('RGB')

img_GRAY=cv2.cvtColor(img_BGR,cv2.COLOR_BGR2GRAY)    
plt.subplot(3,3,3)  #窗口
plt.imshow(img_GRAY)
plt.axis('off')
plt.title('GRAY')

img_HSV=cv2.cvtColor(img_BGR,cv2.COLOR_BGR2HSV)   
plt.subplot(3,3,4)  #窗口
plt.imshow(img_HSV)
plt.axis('off')
plt.title('HSV')

img_YCrCb=cv2.cvtColor(img_BGR,cv2.COLOR_BGR2YCrCb)    
plt.subplot(3,3,5)  #窗口
plt.imshow(img_YCrCb)
plt.axis('off')
plt.title('YcrCb')



img_HLS = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HLS)
plt.subplot(3,3,6)
plt.imshow(img_HLS)
plt.axis('off')
plt.title('HLS')

img_XYZ = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2XYZ)
plt.subplot(3,3,7);
plt.imshow(img_XYZ)
plt.axis('off')
plt.title('XYZ')

img_LAB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2LAB)
plt.subplot(3,3,8)
plt.imshow(img_LAB)
plt.axis('off')
plt.title('LAB')

img_YUV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2YUV)
plt.subplot(3,3,9)
plt.imshow(img_YUV)
plt.axis('off')
plt.title('YUV')

plt.show()#展示

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

5.PIL库图像的读入、保存、显示

#PIL库图像的读入、保存、显示

from PIL import Image
from numpy import array
import pylab as plt
a=Image.open("Tom.jpg")  #返回一个PIL图像对象
b=a.convert("L")  #转换为灰度图像对象
b.save("Tom2.jpg")  #把灰度图像保存为empire2.jpg
aa=array(a)  #把图像对象转换为数组

print(aa.shape)   #显示图像大小

c=a.crop((100,100,400,400))
d=a.rotate(45)   #图像旋转45°

plt.rc('font',family="SimHei")

plt.subplot(221)
plt.imshow(a)
plt.title("原图")

plt.subplot(222)
plt.imshow(b)
plt.title("灰度图")

plt.subplot(223)
plt.imshow(c)
plt.title("剪裁图像")

plt.subplot(224)
plt.imshow(d)
plt.title("旋转图像")

plt.show()
       

运行结果:
(700, 700, 3)
在这里插入图片描述

6。生成轮廓图以及直方图

from PIL import Image
from numpy import array
import pylab as plt  #挤在Matplotlib 的Pylab接口

a=Image.open("Tom.jpg")
b=a.convert('L')
aa=array(b)                 #读取图像到数组中

plt.rc('font',size=16)

plt.subplot(121)
plt.contour(aa,origin='image')  #轮廓图
plt.subplot(122)
plt.hist(aa.flatten(),128)

plt.show()



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


本文链接: http://www.dtmao.cc/news_show_2000209.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?