我需要OpenCV3.0,因为它支持我需要的一些新功能.我使用以下代码进行安装(我已经使用此代码成功安装了OpenCV 2.4.9.但对于OpenCV 3.0,在执行cmake部分时,由于MD5校验和不匹配而弹出一些错误)
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -qq remove ffmpeg x264 libx264-dev
echo "Installing Dependenices"
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
echo "Installing OpenCV" $version
unzip OpenCV-3.0.zip #i manually installed opencv3.0 zipfile for linux from https://github.com/Itseez/opencv/archive/3.0.0-alpha.zip
cd opencv-3.0.0-alpha
mkdir build
cd build …Run Code Online (Sandbox Code Playgroud) 我使用的是Ubuntu 12.04.我最近从https://github.com/Itseez/opencv/archive/3.0.0-alpha.zip安装了OpenCV 3.0 .我想做功能匹配,我使用了以下代码:
import numpy as np
import cv2
from matplotlib import pyplot as plt
MIN_MATCH_COUNT = 10
img1 = cv2.imread('box.png',0) # queryImage
img2 = cv2.imread('box_in_scene.png',0) # trainImage
# Initiate SIFT detector
sift = cv2.SIFT()
# find the keypoints and descriptors with SIFT
kp1, des1 = sift.detectAndCompute(img1,None)
kp2, des2 = sift.detectAndCompute(img2,None)
FLANN_INDEX_KDTREE = 0
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
search_params = dict(checks = 50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1,des2,k=2)
# store all …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用python学习opencv并遇到以下代码:
import cv2
import numpy as np
from matplotlib import pyplot as plt
BLUE = [255,0,0]
img1 = cv2.imread('opencv_logo.png')
replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)
plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()
Run Code Online (Sandbox Code Playgroud)
来源:http://docs.opencv.org/master/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#exercises
plt.imshow(img1,'grey')有什么作用?我尝试搜索谷歌,我所能理解的是"灰色"参数是彩色地图.但我的图像(图片在网站上有图片.请参阅链接)不会以灰度显示.我尝试删除第二个参数.所以代码就像plt.imshow(img1).它执行.图像与以前保持一致.那么第二个参数"灰色"是做什么的呢?有人可以向我解释这一切吗?任何帮助赞赏.谢谢.
PS.我对Matplotlib完全不熟悉
我正在使用Ubuntu 12.04.我试图使用http://karytech.blogspot.in/2012/05/opencv-24-on-ubuntu-1204.html中显示的步骤安装OpenCV
但是当涉及到编译步骤时,我收到一个错误:
clive@clive-Aspire-4755:~/OpenCV-2.4.0/build$ cmake -D WITH_QT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=ON ..
CMake Error: The source directory "/home/clive" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
注意:CMakeLists.txt文件存在于OpenCV-2.4.0文件夹中,而不是内部版本.
我正在尝试在 OpenCV Python 中实现单目(单相机)视觉里程计。维基百科在这里给出了常用的方法步骤http://en.wikipedia.org/wiki/Visual_odometry 我使用 Lucas Kanade 跟踪器计算了光流。代码在这里给出http://docs.opencv.org/trunk/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html Wiki上的步骤4说“检查流场向量是否存在潜在的跟踪错误并删除异常值”。我如何在 OpenCV (python) 中执行此操作?我应该使用什么算法/函数?那么第 5 步和第 6 步呢?我在某处读到(请参阅第三条评论http://opencv-users.1802565.n2.nabble.com/optical-flow-with-kalman-filter-td6578617.html)如果卢卡斯·卡纳德(Lucas Kanade)卡尔曼滤波器不会在性能上提供任何改进用来。
我使用以下代码捕获视频文件,翻转并保存.
#To save a Video File
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
该程序将输出保存为output.avi
现在,为了播放视频文件,我使用了以下程序
#Playing Video from File
import numpy as np
import cv2
cap …Run Code Online (Sandbox Code Playgroud) 我想找到两个信号x1和x2之间的相关性.
x1 = [1 1 1 1 1]
x2 = [1 1 1 1 1]
r1 = xcorr(x1,x2) //function in matlab to find cross correlation of x1 and x2
Run Code Online (Sandbox Code Playgroud)
x1和x2都是这样的

他们的互相关看起来像这样

我知道相关性测量两个信号之间的相似程度,给出对应于最大相似性的点的最高值(两个信号相对于彼此移位以测量不同点处的相似性对吗?).因此,在这种情况下,互相关应该在所有点都给出高值,但事实并非如此.最大值位于第5位.这是为什么?谁可以给我解释一下这个?
我想使用 matplotlib 绘制轨迹。在我编写的程序的每次迭代中,我都会获得一个对象的 x 和 y 坐标。我想在 xy 图上绘制此对象的运动。我使用了以下代码:
import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches
import time
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(-100,100)
ax.set_ylim(-100,100)
plt.ion()
plt.show(block=True)
verts = [
(0, 0), #I'm just assuming two sets of points here. I actually intend to put variables here which I can update in real time.
(27, 0)
]
codes = [Path.MOVETO,
Path.LINETO]
path = Path(verts, codes)
#fig = plt.figure()
#ax = fig.add_subplot(111)
patch = patches.PathPatch(path, …Run Code Online (Sandbox Code Playgroud) opencv ×6
python ×4
cmake ×2
matplotlib ×2
attributes ×1
c++ ×1
checksum ×1
colormap ×1
correlation ×1
delay ×1
frame-rate ×1
imshow ×1
installation ×1
matching ×1
matlab ×1
md5 ×1
plot ×1
real-time ×1
sift ×1
signals ×1
terminal ×1
ubuntu ×1
video ×1