我需要安装cv2一个为我编写的脚本.我试过 pip install cv2并且pip install open_cv遇到了同样的问题 - 一条警告信息dist.py并抱怨zlib未被发现.没有安装cv2.我也试过pyopenvc和pip install opencv-python.
所以,我去了opencv网站并下载了相关的exe.跑吧 - 生成一堆子目录和一个make文件和东西.
现在我该怎么做?
几天前,我开始使用新的OpenCV-Python界面cv2.
我的问题是关于比较cv和cv2界面.
关于易用性,新cv2界面的改进程度要大得多,而且使用起来非常简单有趣cv2.
但速度怎么样?
我制作了两个小码密码,一个在cv另一个cv2,用于检查性能.两者都具有相同的功能,访问图像的像素,测试它,进行一些修改等.
以下是代码:
cv2 interface:
import time
import numpy as np
import cv2
gray = cv2.imread('sir.jpg',0)
width = gray.shape[0]
height = gray.shape[1]
h = np.empty([width,height,3])
t = time.time()
for i in xrange(width):
for j in xrange(height):
if gray[i,j]==127:
h[i,j]=[255,255,255]
elif gray[i,j]>127:
h[i,j]=[0,0,255-gray[i,j]]
else:
h[i,j]=[gray[i,j],0,0]
t2 = time.time()-t
print "time taken = ",t2
Run Code Online (Sandbox Code Playgroud)
================================================== ===
结果是:
所用时间= 14.4029130936
================================================== ====
cv界面:
import cv,time …Run Code Online (Sandbox Code Playgroud) 我试图png在python中读取图像.该imread函数scipy被弃用,他们建议使用imageio图书馆.
但是,我宁愿限制我的外部库的使用 scipy,numpy和matplotlib图书馆.因此,使用imageio或scikit image不是我的好选择.
python中是否有任何方法scipy,numpy或者matplotlib读取图像,这些方法都没有被弃用?
几天前,我开始寻找一种制作简单计算机视觉系统的好方法.OpenCV库是我需要的东西,但事实证明用Python学习很难,特别是在OpenCV 2.4.3更新之后,它有非常纤薄的Python相关文档.所以我现在明白OpenCV中有很多变化,例如excmple
import cv
Run Code Online (Sandbox Code Playgroud)
就是现在
import cv2
Run Code Online (Sandbox Code Playgroud)
并且有许多模块缺失.我的意思是,是的,有新的python-opencv语法的例子,但它非常狭窄,并且被证明很难理解.例如:Python代码的官方文档中的示例
cv2.cvtColor(src, code[, dst[, dstCn]])
Run Code Online (Sandbox Code Playgroud)
我知道这段代码意味着什么,以及如何使用它,至少我想我知道.但是编写源代码和颜色代码并没有给我带来任何好处:
Traceback (most recent call last):
File "C:\FILEFOLDER\tut.py", line 11, in <module>
cv.cvtColor('proba.jpg', 'CV_RGB2GRAY')
TypeError: an integer is required
Run Code Online (Sandbox Code Playgroud)
或者,如果我尝试编写变量代码:
Traceback (most recent call last):
File "C:\FILEFOLDER\tut.py", line 11, in <module>
cv.cvtColor('proba.jpg', CV_RGB2GRAY)
NameError: name 'CV_RGB2GRAY' is not defined
Run Code Online (Sandbox Code Playgroud)
那么有没有任何与Python相关的参考文档/教程/书籍/指南以及最新的OpenCV,其中有一些基本的解释,不会让像我这样的新手与C++或Java的不需要的代码示例混淆?
我一直试图通过Python上的OpenCV获得单色blob跟踪.下面的代码工作正常,但它找到了所有跟踪像素的质心,而不仅仅是最大blob的质心.这是因为我正在拍摄所有像素的时刻,但我不确定如何进行色彩跟踪.我有点困惑于我需要做什么才能使这个单一的blob跟踪器而不是多blob平均值.
这是代码:
#! /usr/bin/env python
#if using newer versions of opencv, just "import cv"
import cv2.cv as cv
color_tracker_window = "Color Tracker"
class ColorTracker:
def __init__(self):
cv.NamedWindow( color_tracker_window, 1 )
self.capture = cv.CaptureFromCAM(0)
def run(self):
while True:
img = cv.QueryFrame( self.capture )
#blur the source image to reduce color noise
cv.Smooth(img, img, cv.CV_BLUR, 3);
#convert the image to hsv(Hue, Saturation, Value) so its
#easier to determine the color to track(hue)
hsv_img = cv.CreateImage(cv.GetSize(img), 8, 3)
cv.CvtColor(img, hsv_img, cv.CV_BGR2HSV)
#limit all …Run Code Online (Sandbox Code Playgroud) 我试图从python中调用OpenCV函数MinAreaRect2.我使用OpenCV 2.4.2与python 2.7和numpy 1.6.我走了这么远:
import cv
def nda2ipl(arr, dtype=None):
return cv.fromarray(np.ascontiguousarray(arr, dtype=dtype))
def min_area_rect2(points):
storage = cv.CreateMemStorage()
cv_points = nda2ipl(points.reshape((-1, 1, 2)))
out = cv.MinAreaRect2(cv_points, storage)
return out
Run Code Online (Sandbox Code Playgroud)
我可以用形状的ndarray(N x 2)来调用这个函数.我得到了这样的结果:
((476.5, 604.5), (951.0, 1207.0), -0.0)
Run Code Online (Sandbox Code Playgroud)
我假设第一个元组是盒子的中心,第二个元素是宽度和高度,最后一个是角度.
问题是我无法得到明确的参考说明.实际上,opencv文档告诉我函数在Python中返回什么.
python中MinAreaRect2的输出究竟是什么?更一般地说,在哪里可以获得有关OpenCV python包装器的精确文档?
我按照本指南使用Eclipse在Python 2.7中设置了OpenCV 2.3.1.
我还将库复制到我的python文件夹中:
这是我的Hello World程序,它正确运行(创建一个命名窗口并显示图像),但Eclipse仍显示语法错误

每个错误都说"导入的未定义变量"
以下是此项目的python设置:
http://i.snag.gy/KBXiB.jpg http://i.snag.gy/KfTpF.jpg
我是否错误地设置了PythonPath?如何让Eclipse正常工作?
谢谢
我正在尝试运行此脚本:
https://github.com/openalpr/train-detector/blob/master/crop_plates.py
我以前从未处理过python。首先,我在打印行中有一些语法错误。他们没有括号...但是我不确定是否由于安装的Python版本而收到此错误,或者这确实是语法错误。修复语法错误后,我收到以下错误:
C:\>py crop_plates.py
Traceback (most recent call last):
File "crop_plates.py", line 7, in <module>
import cv2, cv
ImportError: No module named cv
Run Code Online (Sandbox Code Playgroud)
我做了以下工作:
已安装Python 2.7.5 32位。
已安装numpy 1.9.1 32位(也尝试过其他版本)
安装了matplotlib 1.3.0。
已安装的OpenCv
从复制cv2.pyd
C:\Users\Me\Downloads\opencv\build\python\2.7\x86
Run Code Online (Sandbox Code Playgroud)
至
C:\Python27\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)
但是我找不到我所缺少的cv.pyd文件。
我找到了有关安装Opencv的指南的参考,但无法正常使用 http://opencv.willowgarage.com/documentation/python/
非常感谢你,
编辑:我正在Windows 7中运行Python。
我正在尝试使用Python OpenCV对视频流进行gussian过滤,但是我得到了错误:
blur = cv.GaussianBlur(dst, (5, 5), 0)
AttributeError: 'module' object has no attribute 'GaussianBlur'
Run Code Online (Sandbox Code Playgroud)
我很确定高斯模糊应该适用于openCV 2.4,所以我一定做错了.如果我注释掉高斯模糊线,否则代码会按照我的要求执行.
这是整个事情:
import sys
from math import sin, cos, sqrt, pi
import cv2.cv as cv
import urllib2
if __name__ == '__main__':
try: fn = sys.argv[1]
except: fn = 0
def nothing(*args):
pass
cv.NamedWindow("Source", 1)
cv.NamedWindow("Hough", 1)
cv.CreateTrackbar("rho","Hough",1,10, nothing)
cv.CreateTrackbar("thresh","Hough",1,1000, nothing)
cv.CreateTrackbar("cThresh1","Hough",0,500, nothing)
cv.CreateTrackbar("cThresh2","Hough",0,500, nothing)
while True:
url = 'http://192.168.5.1:8080/shot.jpg'
filedata = urllib2.urlopen(url).read()
imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1)
cv.SetData(imagefiledata, filedata, len(filedata))
src = cv.DecodeImageM(imagefiledata, cv.CV_LOAD_IMAGE_GRAYSCALE) …Run Code Online (Sandbox Code Playgroud)