⑴ 如何用python实现视频关键帧提取并保存为图片
参考代码如下:
import
cv2
vc
=
cv2.VideoCapture('Test.avi')
#读入视频文件
c=1
if
vc.isOpened():
#判断是否正常打开
rval
,
frame
=
vc.read()
else:
rval
=
False
timeF
=
1000
#视频帧计数间隔频率
while
rval:
#循环读取视频帧
rval,
frame
=
vc.read()
if(c%timeF
==
0):
#每隔timeF帧进行存储操作
cv2.imwrite('image/'+str(c)
+
'.jpg',frame)
#存储为图像
c
=
c
+
1
cv2.waitKey(1)
vc.release()
⑵ opencv 连续存图效率
使用opencv保存多张图片存,命名以数字递增,例如1.jpg 、2.jpg .......
Img_Name = "./eds/images/" + str(i)+ ".jpg"
前面一部分是要存的图片路径,根据自己需要改,str(i) 是把数字转成字符串 ,i 写一幅图像变得i++
上面这句就把图像的存储路径和命名给成字符串了
然后写下面这句就行可以保存到指定位置了
cv2.imwrite(Img_Name , img)
img是图像,Img_Name 是保存的路径与图像名称
import os
import cv2
# 打开文件
path = "./eds/images"
dirs = os.listdir(path)
print(dirs) # 输出所有子文件和文件夹
for file in dirs:
pic_dir = os.path.join(path, file) # images中子文件夹的路径
for i in os.listdir(pic_dir):
image_dir = os.path.join(pic_dir, i) # images中每个子文件夹中图片的路径
img = cv2.imread(image_dir)
print(image_dir) # 输出图片的路径
print(img) # 输出图片
# 读取
img = cv2.imread(image_dir)
# 显示
cv2.imshow('window_title', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存
Img_Name = "./eds/images/" + str(i)
cv2.imwrite(Img_Name , img)
⑶ python opencv如何存图片到指定路径按图上的会存到python_work文件夹
如图,修改倒数第四行的内容为:
cv2.imwrite('F:/xxx/yyy/' + str(c) + '.jpg', frame)
即可将图片存储到 F 盘的 xxx\yyy 目录中,这里按照你的需要修改即可
⑷ 请教在PYTHON中拍摄到的图片不能保存到指定的文件夹中
mport cv2
import numpy as np
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
file = open('label_1.txt', 'r')
for line in file.readlines():
line_array = line.split(' ')
img= cv2.imread(r'E:\MMW\test_set\test1\%s' %(line_array[0]))
filename = r'C:\MMW\%s' %(line_array[0])
print(filename)
cv2.imwrite(filename, img)
file.close()
⑸ numpy、cv2等操作图片基本操作
1 matplotlib.pylab
2 PIL.image.open
3 cv2.imread
注意,pylab.imread和PIL.Image.open读入的都是RBG顺序,而cv2.imread读入的是BGR顺序,混合使用的时候要特备注意
1 matplotlib.pylab - plt.imshow,这个函数的实际上就是将一个numpy数组格式的RGB图像显示出来
2 cv2 - 不用考虑了,pylab.imshow方便多了
1 PIL.Image
2 cv2(注意,opencv在读入图片的时候就可以通过参数实现颜色通道的转换,下面是用别的方式实现)
1 PIL.image - 保存PIL格式的图片
2 cv2.imwrite - 保存numpy格式的图片
⑹ opencv中Mat数据怎么保存为JPG格式的图片
1、先把 Mat 数据转为 IplImage;
2、再用 cvSaveImage 来保存为JPG格式;
3、代码如下所示:
constchar*filename="./testImages/12.jpg";
std::ifstreamfile(filename);
std::vector<char>data;
file>>std::noskipws;
std::(std::istream_iterator<char>(file),std::istream_iterator<char>(),std::back_inserter(data));
cv::MatmatrixJprg=cv::imdecode(cv::Mat(data),1);
IplImageqImg;
qImg=IplImage(matrixJprg);//cv::Mat->IplImage
cvSaveImage("./out.jpg",&qImg);
⑺ Python 读取文件夹将里面的图片处理成想要的大小并保存在个指定位置
#-*-coding:utf-8-*-
importcv2
importos
importnumpy
importcutHumanFace
defsaveCutFace(filePath,pathSave='cutFace',normalizeWidth=300,normalizeHeight=300):
"""
:paramfilePath:string,文件夹路径
"""
ifnotos.path.exists(savePath):
os.makedirs(savePath);#保存的文件夹
files=os.listdir(filePath);#列出目录下的所有文件
normalizeWidth=100#以100×100为大小
normalizeHeight=100
forfileinfiles:
normalizeFace=cv2.resize(cutFace,(normalizeWidth,normalizeHeight),interpolation=cv2.INTER_AREA);
cv2.imwrite(savePath,normalizeFace);
⑻ openCV 在将图像二值化后,如何保存
就是保存图片吗?
用函数cvSaveImage(“binary.jpg”,bianry); 就可以了。你将保存名字为binary 的二值图像到你的程序所在目录下。