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()
运行结果:

本文介绍了使用Python的OpenCV库进行数字图像处理,包括读取、展示和存储图像,读取视频并保存帧,颜色空间转换,以及轮廓图和直方图的生成。同时,也探讨了PIL库在图像读入、保存和显示的应用。

2956

被折叠的 条评论
为什么被折叠?



