#
include
<opencv2/opencv.hpp>
#
include
<opencv2/highgui.hpp>
#
include
<opencv2/imgproc.hpp>
#
include
<opencv2/videoio.hpp>
#
include
<sstream>
int
main
(
int
argc
,
char
*
argv
[
]
)
cv
::
VideoCapture cap
;
cap
.
set
(
cv
::
CAP_PROP_FOURCC
,
cv
::
VideoWriter
::
fourcc
(
'M'
,
'J'
,
'P'
,
'G'
)
)
;
cap
.
set
(
cv
::
CAP_PROP_FRAME_WIDTH
,
640
)
;
cap
.
set
(
cv
::
CAP_PROP_FRAME_HEIGHT
,
480
)
;
int
deviceID
=
0
;
cap
.
open
(
deviceID
)
;
if
(
!
cap
.
isOpened
(
)
)
std
::
cerr
<<
"ERROR!!Unable to open camera\n"
;
return
-
1
;
cv
::
Mat img
;
while
(
true
)
cap
>>
img
;
cv
::
namedWindow
(
"example"
,
1
)
;
if
(
img
.
empty
(
)
==
false
)
cv
::
imshow
(
"example"
,
img
)
;
int
key
=
cv
::
waitKey
(
30
)
;
if
(
key
==
int
(
'q'
)
)
break
;
cap
.
release
(
)
;
cv
::
destroyAllWindows
(
)
;
return
0
;
如果电脑上有外接的usb摄像机,可以更换设备号为1打开,在0与1之间切换会找到你想打开的相机,如果有更多相机,设备号依次增加。
import numpy as np
from cv2 import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while(True):
if cap.isOpened() == False:
print('can not open camera')
break
ret, frame = cap.read()
if ret == False:
continue
cv2.namedWindow("frame")
cv2.imshow('frame', frame)
mykey = cv2.waitKey(1)
if mykey & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
主要使用cv::VideoCapture类完成。C++代码:环境:Windows10 + vs2019#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/highgui.hpp>#include <opencv2/imgproc.hpp>#include <opencv2/videoio.hpp>#include<sstream>i
import cv2
cap=cv2.VideoCapture(0)#mac系统选择1 如果打开本地视频,就直接将0改为视频的地址就可以了
success=cap.isOpened()#返回的是bool类型,用于查看是否可以打开本地的视频
while success:
ret,frames=cap.read()
frame_rgb=cv2.cvtColor(frames,cv2.COLOR_BGR2RGB)#因为有些任务需.
之前一直不清楚opencv调用摄像头的具体方法,于是参考b站视频写了个通用模板,以后可以根据需要自行调整。视频链接
先定义图片和视频的保存路径
img_path = './img_video/test_img.jpg' # 图片保存路径
video_path = './img_video/test_video.mp4' # 视频保存路径
这个是图片处理的函数,由摄像头捕获的图片或视频帧可以通过这个函数处理后再返回,我这里没有作处理直接返回。
def process_frame(frame):
运行效果代码之前我找过directshow,CameraDS,VedioCaptureFromCam之类的东西,发现都不可以用。directshow是因为版本太老了,会出现:
http://www.opencv.org.cn/forum.php?mod=viewthread&action=printable&tid=33813
VedioCaptureFromCam就会显示不出图片。所以后
文章转载:python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机
一、Opencv接口
使用 opencv 的官方接口 VideoCapture() 接口直接调用海康工业相机,
接下来简单介绍下 VideoCapture() 这个接口
接口:cv2.VideoCapture()
作用:获取本地目录下的视频文件或者使用本电脑的摄像头获取实时数据;
本文需要使用该接口调用海康工业相机;
参数写入 “0” ,调用的是本地电脑摄像头
参数写入 “1” ,调用的
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2001 无法解析的外部符号 “void __cdecl cv::imshow(class std::basic_string<char,
14988
rosdep init保错和rosdep update保错解决 ERROR: unable to process source [https://raw.githubusercontent.com/
m0_58869453:
OpenCv中matchShapes()函数的使用
2301_76161961:
OpenCv中matchShapes()函数的使用
网络通杀108:
OpenCv中matchShapes()函数的使用
2301_76161961:
ROS中amcl配置需要特别注意的问题(base_link、base_footprint、footprint的联系)
wolfcanlee:
cv2 dnn模块报错total(os[i]),Assertion failed) total(os[i]) > 0 in ‘cv::dnn::dnn4_v20201117::Net::Impl...
vscode配置C++开发环境
WARNING: Retrying,树莓派更换pip源