我试图在VS 2010中使用OpenCV.我是业余爱好者,我正在学习OpenCV维基的第一步.但是,在尝试调试我的项目时,我收到以下错误:
'C:\ Windows\SysWOW64 \ntdll.dll',无法找到或打开PDB文件'C:\ Windows\SysWOW64\kernel32.dll',无法找到或打开PDB文件'C:\ Windows\SysWOW64\kernellbase. dll',无法找到或打开PDB文件
我在正确的目录中有这些文件,为什么不能打开它们呢?我该怎么做才能解决这个问题?
我正在使用c/c ++为osx和linux开发命令行界面可执行文件.该项目将链接到opencv.我应该使用libc ++还是libstdc ++?
我正在使用OpenCV(2.4)和Python(2.7.3)以及Thorlabs的USB摄像头(DC1545M).
我正在对视频流进行一些图像分析,我希望能够从我的视频流中更改一些摄像机参数.令人困惑的是,我能够改变一些相机属性而不是所有相机属性,我不确定我做错了什么.
这是代码,使用Python中的cv2绑定,我可以确认它运行:
import cv2
#capture from camera at location 0
cap = cv2.VideoCapture(0)
#set the width and height, and UNSUCCESSFULLY set the exposure time
cap.set(3,1280)
cap.set(4,1024)
cap.set(15, 0.1)
while True:
ret, img = cap.read()
cv2.imshow("input", img)
#cv2.imshow("thresholded", imgray*thresh2)
key = cv2.waitKey(10)
if key == 27:
break
cv2.destroyAllWindows()
cv2.VideoCapture(0).release()
Run Code Online (Sandbox Code Playgroud)
作为参考,cap.set()命令中的第一个参数引用了相机属性的枚举,如下所示:
0. CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.
1. CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
2. CV_CAP_PROP_POS_AVI_RATIO Relative position of the video …Run Code Online (Sandbox Code Playgroud) 码:
import numpy as np
import cv
Run Code Online (Sandbox Code Playgroud)
安慰:
>>> runfile('/Users/isaiahnields/.spyder2/temp.py', wdir='/Users/isaiahnields/.spyder2')
RuntimeError: module compiled against API version a but this version of numpy is 9
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile
execfile(filename, namespace)
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile
builtins.execfile(filename, *where)
File "/Users/isaiahnields/.spyder2/temp.py", line 9, in <module>
import cv
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/cv.py", line 1, in <module>
from cv2.cv import *
ImportError: numpy.core.multiarray failed to import
>>>
Run Code Online (Sandbox Code Playgroud)
系统信息:OS X埃尔卡皮坦的Macbook Air,1.3GHz的英特尔酷睿i5,8 GB …
尝试导入OpenCV时,使用import cv2我得到以下错误:
/usr/local/lib/python2.7/dist-packages/cv2/__init__.py in <module>()
7
8 # make IDE's (PyCharm) autocompletion happy
----> 9 from .cv2 import *
10
11 # wildcard import above does not import "private" variables like __version__
ImportError: libSM.so.6: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
不确定如何解决这个问题 - 尝试使用谷歌新的Colaboratory工具.笔记本电脑在这里:https://drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing
执行期间会发生什么cvWaitKey()?什么是典型的用例?我在OpenCV参考中看到过,但文档的确切用途并不明确.
我知道我可以pip install opencv-python安装opencv3,但是对于opencv特定版本(例如2.4.9)是否有单独的命令或名称?
如果没有,我如何指定要安装的版本?
谢谢.
我见过他们中有一些. opencvdotnet,SharperCV,EmguCV,One on Code Project.
有没有人有这些经验?我在Code Project上玩了一下,但是当我尝试做任何复杂的事情时,我得到了一些讨厌的无法捕获的异常(即Msgbox异常).跨平台(支持Mono)将是最好的.
我已经彻底搜索了互联网和stackoverflow,但我没有找到我的问题的答案:
如何在OpenCV中获取/设置(两者)某些(由x,y坐标给定)像素的RGB值?重要的是 - 我用C++编写,图像存储在cv :: Mat变量中.我知道有一个IplImage()运算符,但IplImage在使用中不是很舒服 - 据我所知它来自C API.
是的,我知道在OpenCV 2.2线程中已经有这个Pixel访问,但它只是关于黑白位图.
编辑:
非常感谢您的所有答案.我看到有很多方法来获取/设置像素的RGB值.我从亲密的朋友那里得到了一个想法 - 谢谢Benny!这非常简单有效.我认为这是一个你选择的品味问题.
Mat image;
Run Code Online (Sandbox Code Playgroud)
(......)
Point3_<uchar>* p = image.ptr<Point3_<uchar> >(y,x);
Run Code Online (Sandbox Code Playgroud)
然后你可以读取/写入RGB值:
p->x //B
p->y //G
p->z //R
Run Code Online (Sandbox Code Playgroud) 我正在编写一个opencv程序,我在另一个stackoverflow问题上找到了一个脚本:计算机视觉:屏蔽人手
当我运行脚本的答案时,我收到以下错误:
Traceback (most recent call last):
File "skinimagecontour.py", line 13, in <module>
contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
代码:
import sys
import numpy
import cv2
im = cv2.imread('Photos/test.jpg')
im_ycrcb = cv2.cvtColor(im, cv2.COLOR_BGR2YCR_CB)
skin_ycrcb_mint = numpy.array((0, 133, 77))
skin_ycrcb_maxt = numpy.array((255, 173, 127))
skin_ycrcb = cv2.inRange(im_ycrcb, skin_ycrcb_mint, skin_ycrcb_maxt)
cv2.imwrite('Photos/output2.jpg', skin_ycrcb) # Second image
contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for i, c in enumerate(contours):
area = cv2.contourArea(c)
if area > 1000:
cv2.drawContours(im, contours, …Run Code Online (Sandbox Code Playgroud)