Python 中配置opencv 读取视频报错 ,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 中配置opencv 读取视频报错 ,相关的知识,希望对你有一定的参考价值。
Python 中配置opencv 读取视频报错 ,报错的内容为
warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:537)
请问这个这问题应该怎么解决?
2:其代码如下:
#includehighgui.h
#includecv.h
//从摄像头中读入数据
int main(int argc,char** argv)
cvNamedWindow(Example1,CV_WINDOW_AUTOSIZE);
CvCapture* capture; //初始化一个CvCapture结构的指针
if(argc==1)
capture=cvCaptureFromCAM(0);//如果参数为1,则从摄像头中读入数据,并返回一个CvCapture的指针
//注:《学习OpenCV》中此处用cvCreateCameraCapture为错
else
capture=cvCreateFileCapture(argv[1]);
assert(capture!=NULL); //断言(assert)使用,检查capture是否为空指针,为假时程序退出,并打印错误消息
IplImage* frame;
while(1)
frame=cvQueryFrame(capture);//用于将下一帧视频文件载入内存(实际是填充和更新CvCapture结构中),返回一个对应当前帧的指针
if(!frame)
break;
cvShowImage(Example1,frame);
char c=cvWaitKey(33);
if(c==27) break; //出发ESC键退出循环,读入数据停止
cvReleaseCapture(capture);//释放内存
cvDestroyWindow(Example1);
opencv+python实现视频实时质心读取
利用opencv+python实现以下功能:
1)获取实时视频,分解帧频;
2)将视频做二值化处理;
3) 将视频做滤波处理(去除噪点,获取准确轮廓个数);
4)识别图像轮廓;
5)计算质心;
6)描绘质心动态变化曲线;
# -*- coding: utf-8 -*- """ Created on Thu Apr 24 12:10:23 2018 @author: irene """ import numpy as np import matplotlib.pyplot as plt from scipy.interpolate import spline import math as mt import cv2 cap = cv2.VideoCapture(‘1.avi‘) #读入视频 c=1 plt.figure(figsize=(8,8),dpi=80) aa =[] bb =[] cc =[] #uing = np.logspace(-3,2,121) while(cap.isOpened()): ret, frame = cap.read() #分解为一帧一帧图像 if ret == True: #cv2.imshow("frame",image) img=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #彩色转灰度 # print(frame) ret,thresh= cv2.threshold(img,127,255,0) #二值化 image,contours,hierarchy = cv2.findContours(thresh, 3, 1) img = cv2.medianBlur(image,5) #进行中值滤波 cnt = contours[1] #选取其中的第一个轮廓,这幅图像只有两个轮廓 M = cv2.moments(cnt) cX=int(M["m10"]/M["m00"]) #计算质心 cY=int(M["m01"]/M["m00"]) cv2.drawContours(img,contours,-1,(0,255,0),2) cv2.circle(img,(cX,cY),7,(255,255,255),-1) cv2.putText(img,"",(cX-20,cY-20), cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,255,255),2) cv2.imshow("img",img) cv2.imwrite(‘img/‘+str(c) + ‘.jpg‘,frame) #存储为图像 # for u in uing: aa.append(cX) bb.append(cY) cc.append(c) # plt.plot(c,cX,‘k-‘) #plt.plot(c,cX,color=‘red‘,linewidth=2.5,linestyle=‘:‘) # plt.plot(c,cX,‘k^‘) #plt.plot(c,cY,‘yo:‘) c = c+1 else: break # cv2.imshow(‘frame‘,gray) #显示标记后的图像q if cv2.waitKey(1) & 0xFF == ord(‘q‘): break cap.release() cv2.destroyAllWindows() c1=np.var(aa) c2=np.var(bb) c1_1=c1/720*2.3*mt.pi/180 c1_2=c2/512*2.3*mt.pi/180 print(c1_1) print(c1_2) plt.plot(cc,aa) plt.show() plt.plot(cc,bb) plt.show()
以上是关于Python 中配置opencv 读取视频报错 ,的主要内容,如果未能解决你的问题,请参考以下文章