2017-01-16 4 views
1
img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 1) 
img = cv2.medianBlur(img, 5) 
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 

circles = cv2.HoughCircles(img, cv2.cv.CV_HOUGH_GRADIENT, 1, 20,param1=50,param2=30,minRadius=0,maxRadius=0) 
circles = np.uint16(np.around(circles)) 
for i in circles[0, :]: 
    # draw the outer circle 
    cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2) 
    # draw the center of the circle 
    cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3) 

cv2.imwrite('circles_detected.JPG', cimg) 

opencv에서 HoughCircles 기능으로 이미지의 원을 감지하려고합니다. 프로그램이 바로 실행하는 데 영원히 소요 그러나Python - OpenCV - HoughCircles로 원 감지

cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 
cv2.error: /build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/color.cpp:3789: error: (-215) scn == 1 && (dcn == 3 || dcn == 4) in function cvtColor 

나는이 같은 그레이 스케일 이미지를로드

img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 0) 

을 cvtColor 기능을 떠나려고 :

오류 메시지가 내가 얻을 수있다 . 10 분 이상 기다렸는데 아무 일도 없었습니다.

누군가 나를 도와 줄 수 있습니까? 첫 번째 오류

답변

3

, 당신은

img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 1) #1 means color 

와 컬러 모드에서 이미지를 열고 다음은

두 번째 문제에 대한
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) #GRAY2BGR means gray to BGR. 
#You don't have a grayscale image to begin with. 

와 그레이 스케일 이미지로 치료를 변환하려고 허프 변형은 긴 과정입니다. 나는 200 * 200 이미지로 코드를 시도했는데 그것은 순간적이었다. 더 작은 이미지를 먼저 사용해보십시오.

+0

@ cmplx96 항상 읽고있는 이미지와 읽는 방법에주의하십시오. –

+1

잘못된 경로에서 imread를 사용할 때 WCS가 발생하고 오류가 발생하지 않으면 코드의 나머지 부분을 파괴하는 명랑한 방법으로 None을 반환합니다. >>> 당신이 읽을 때 항상 없음을 확인하십시오! – Soltius

+0

이미지 해상도를 낮추고 작동 중입니다. 다들 감사 해요. – cmplx96