1.对图像的处理
首先,对图像的处理需要提前安装第三方的PIL,可利用其对图像进行缩放、裁剪、旋转、色彩转换等一些处理工作。
举例一:设置一些图像的不同模式,open().convert(). convert中,可设置出“1”、“L”、“P”等不同模式。【“L”:8 bit像素,黑白】
- from PIL import Image
- import os
- import matplotlib.pyplot as plt
-
- print(os.getcwd())
- os.chdir('C:\\Users\\读书人mn\\Desktop\\123123')
- print(os.getcwd())
-
- im=Image.open('four.jpg').convert('L')
- print(im.format,im.size,im.mode)
- #im.show()
- plt.imshow(im)
- plt.title('wenxuan')
- plt.axis('off')
- plt.show()
输出结果如下:
注:标题不要用“中文”
举例二:对图像进行模糊处理
从scipy导入过滤器,im2=filters.gaussian_filter(im,20)中数字20为模糊的程度。
- from scipy.ndimage import filters
- import matplotlib.pyplot as plt
- from pylab import *
-
- im=array(Image.open('four.jpg').convert('L'))
- im2=filters.gaussian_filter(im,20)
-
- plt.figure()
- plt.imshow(im)
- plt.show()
-
- plt.imshow(im2)
- plt.show()
输出结果如下:
案例三:将图片信息转换成表格
- from PIL import Image
- import matplotlib.pyplot as plt
- img=array(Image.open('four.jpg').convert('L'))
- hist(img.flatten(),32)
- plt.figure('Image')
- plt.imshow(img)
- plt.axis('off')
- plt.show()
输出结果如下:
2. 利用ffmpeg的命令对视频处理——视频裁剪
首先,利用cmd中的“cd +决定路径”方式准确将cmd定位到ffmpeg所在的位置
其次,输入ffmpeg -i 视频路径 -ss 开始时间 -t 需要截取的时间 -vcodec copy -acodec copy -preset superfast 输出视频名称.mp4
输出文件截图:
3. 图像处理与人脸识别的结合应用
- import cv2
- import numpy as np
- import pandas as pd
- import os
- from matplotlib import pyplot as plt
- import face_recognition
- img2=cv2.imread("图片1.jpg")
- img=cv2.imread("图片2.jpg")
-
-
- img2_gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
- img2_face=face_recognition.face_locations(img2,number_of_times_to_upsample = 0,model ='cnn')
- for (top,right,bottom,left) in img2_face:
- #用矩形框标记出眼睛的位置 检测多尺度图像,返回值是一张脸部区域信息的列表(x,y,宽,高)
- roi_gray = img2_gray[top:bottom, left:right]
- roi_color= img2[top:bottom, left:right]
-
- img2=img2[top:bottom, left:right]
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- faces=face_recognition.face_locations(img,number_of_times_to_upsample = 0,model ='cnn')
-
- for (top,right,bottom,left) in faces:
- #用矩形框标记出眼睛的位置 检测多尺度图像,返回值是一张脸部区域信息的列表(x,y,宽,高)
- height,width =[bottom-top,right-left]
- img2 = cv2.resize(img2,(height , width),interpolation=cv2.INTER_AREA)
- roi_gray = gray[top:bottom, left:right]
- roi_color = img[top:bottom, left:right]
- img[top:bottom, left:right]=img2
- cv2.imshow('img',img)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
输出结果如下: