2012-06-05 3 views
0

웹상의 Python에서 이미지 가장자리 감지 코드를 찾고 있었는데보고 싶은 재미있는 것을 발견했습니다. 불행하게도 나는이 오류가 계속 : 'cv2.cv.cvseq'개체가 어떤 속성 '총'잘못에서 코드의 라인은 전체 코드 사이를 전환 할 수있는 옵션이Python OpenCv에서 'cv2.cv.cvseq'객체에 'total'속성이 없습니다.

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

이다가 없습니다 Hough Standard와 Hough Probabilistic, 확률 론적 접근법을 사용하여 (따라서 "lines.total"코드를 필요로하지 않음) 잘 동작하므로 설치하고 가져올 필요가있는 모든 것이 확실합니다.

답변

2

새로운 'cv2'버전은 매우 간단하고 모든 객체는 사용자 관점에서 다루기 쉬운 파이썬 목록 또는 numpy 배열로 반환되는 반면 왜 오래된 'cv'버전을 사용하는지 모르겠습니다. .

HoughLines 함수의 출력은 모양 (1, 행 수, 2)과 (1, 행 수, 4)의 numpy 배열입니다. 손에 멍청한 기능이 있기 때문에 원하는대로 할 수 있습니다. 여기

은 허프 표준 하프 확률 사이에서 전환하면 바와 같이 동일 검출 라인 샘플, 즉이다 houghlines.py

아래 나 그 코드하여 얻어진 결과이다 :

허프 표준 :

enter image description here

호우 확률 :

enter image description here

물론 탐지 된 행은 시도한 매개 변수 값에 따라 다릅니다. 원하는대로 매개 변수 값을 변경하고 시도하십시오.

+0

** "TypeError : 'NoneType'객체는 subscriptable이 아닙니다 ** line : 'rho, theta in lines [0] :'* * 및 **'x1, y1, x2, y2 행의 [0] : 게시 한 스크립트를 실행하면됩니다. – DamianJ

+0

그런 다음 이미지에 선이 발견되지 않았다고 생각합니다. 우선'cv2.imread (image) '를 변경합니다. 나중에 임계 값 매개 변수를 더 낮은 값으로 변경하십시오. 에러 라인 직전에'print lines'을 추가하십시오. 'NoneType' 또는 인쇄 값을 출력하는지 확인하십시오. 또한'cv2.Canny()'행의 매개 변수를 변경하십시오. 오류가 계속 발생했습니다. 이미지를 업로드하십시오. –

+0

당신은 임계 값에 대해 옳았습니다. 나는 그것들을 상당히 낮추어야했다. 감사. – DamianJ

0

그들은 cv2에서 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

에는 모듈 cv2.cv.cvseq 훨씬 더 사용자 친화적 신속하고 효과적인 있습니다 없습니다. 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/

관련 문제