⑴ 如何用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 的二值圖像到你的程序所在目錄下。