0

我在网上寻找一些 Python 中的图像边缘检测代码,发现了一些我想看的有趣的东西。不幸的是,我不断收到此错误:'cv2.cv.cvseq' 对象没有属性'total'

出错的代码行是

lines = HoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 );

整个代码可以选择在 Hough Standard 和 Hough Probabilistic 之间切换,当我将其设置为使用概率方法(因此不需要“lines.total”代码段)它运行良好,所以我相当确定我有我需要安装和导入的所有东西。

4

2 回答 2

2

我不知道你为什么使用旧的 'cv' 版本,而新的 'cv2' 版本非常简单,所有对象都以 python 列表或 numpy 数组的形式返回,从用户的角度来看,这很容易处理。

HoughLines 函数的输出是 numpy 形状数组(1,行数,2)和(1,行数,4)。你可以做任何你想做的事情,因为你手头有所有的 numpy 函数。

这是检测线的示例,与您提到的相同,即在霍夫标准和霍夫概率之间切换: houghlines.py

以下是我使用该代码获得的结果:

霍夫标准:

在此处输入图像描述

霍夫概率:

在此处输入图像描述

当然,检测到的线取决于您尝试的参数值。因此,根据需要更改参数值并尝试。

于 2012-06-05T08:49:21.747 回答
0

他们在 cv2 中停止了 cvseq。opencv 2.3.1 中没有模块 cv2.cv.cvseq

你应该使用

lines = cv2.HoughLines(dst, 1, CV_PI/180, 100, 0)

http://opencv.itseez.com/modules/imgproc/doc/feature_detection.html?highlight=houghlines#cv2.HoughLines

cv2 库更加用户友好、快速和有效。您应该继续使用 OpenCV 2.3.1 或 2.4.0。如果您在安装 OpenCV 2.3.1 时遇到任何问题 - http://jayrambhia.wordpress.com/2012/05/02/install-opencv-2-3-1-and-simplecv-in-ubuntu-12-04-precise -pangolin-arch-linux/

于 2012-06-05T08:59:11.080 回答