我使用CMake生成visual studio 2013解决方案.接下来我尝试构建它,但得到以下错误:
构建NVCC(设备)对象模块/ core/CMakeFiles/cuda_compile.dir/src/cuda/Debug/cuda_compile_generated_gpu_mat.cu.obj
nvcc致命:不支持的gpu架构'compute_11'
我尝试使用cuda 6.5和7.0版本2.10和3.0.CUDA_ARCH_BIN设置为:1.1 1.2 1.3 2.0 2.1(2.0)3.0 3.5
我在Linux(ubuntu 12.04)上通过python使用openCV,我有一个logitech c920,我想从中获取图像.奶酪能够获得高分辨率的帧,但每当我尝试使用openCV时,我只能获得640x480的图像.我试过了:
import cv
cam = cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1920)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1080)
Run Code Online (Sandbox Code Playgroud)
但是这会在最后两行的每一行之后产生"0"的输出,并且当我随后通过以下方式获取帧时:
image = cv.QueryFrame(cam)
Run Code Online (Sandbox Code Playgroud)
生成的图像仍为640x480.
我尝试通过(在python之外)安装看似相关的工具:
sudo apt-get install libv4l-dev v4l-utils qv4l2 v4l2ucp
Run Code Online (Sandbox Code Playgroud)
我确实可以通过以下方式操纵相机的设置(再次,在python之外)
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
v4l2-ctl --set-parm=30
Run Code Online (Sandbox Code Playgroud)
并观察:
v4l2-ctl -V
Run Code Online (Sandbox Code Playgroud)
确实表明某些事情发生了变化:
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'H264'
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Run Code Online (Sandbox Code Playgroud)
但是当我弹出python shell时,上面的代码表现与以前完全相同(在尝试设置属性并获得640x480的图像时打印零).
能够提高捕获的分辨率对我来说非常重要,所以我非常感谢任何人都可以提供的任何指针.
OpenCV无法在Linux上为超过8个网络摄像头打开VideoCaptures.这是一个简单的例子:
# "opencap.py"
import cv2, sys
dev = int(sys.argv[1])
cap = cv2.VideoCapture(dev)
print "device %d: %s" %(dev, "success" if cap.isOpened() else "failure")
Run Code Online (Sandbox Code Playgroud)
对于我的设置(OpenCV 2.4.11,Ubuntu 14.04),例如9个网络摄像头,opencap.py成功进行了前8个网络摄像头(0-7),但对于最后一个我获得
> python opencap.py 8
HIGHGUI ERROR: V4L: index 8 is not correct!
device 8: failure
Run Code Online (Sandbox Code Playgroud)
注意:v4l2-ctl --list-devices正确列出9个网络摄像头(/ dev/video0,...,/ dev/video8).