2013-06-06 2 views
2

일반적으로 화면의 사진이나 노이즈가 많은 이미지에서 대비가 낮은 선을 감지하려고합니다. 나는 두 가지 문제로 실행하는 것 :노이즈가 많은 사진에서 낮은 콘트라스트 라인 감지

  1. 나는 확실하기 때문에 화면의 노이즈/어두운 격자, 적응 임계 값 또는 가장자리 탐지 알고리즘으로 라인을 감지 할 수 없습니다. 흐림 효과는 조금 도움이되는 것 같지만 효과적이지는 않습니다.

  2. 노이즈, 조명 조건 등으로 인해 동일한 선에서 몇 개의 세그먼트 만 표시되는 경우 감지 된 선분을 단일 직선에 연결하고 싶습니다.

    img = cv2.imread("test.jpg") 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    gray=cv2.GaussianBlur(gray,(9,9),0) 
    bin = cv2.adaptiveThreshold(gray2, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 33, 3) 
    cv2.namedWindow('Test') 
    cv2.imshow("Test", bin) 
    

는 또한 cv2.Cannycv2.HoughLinesP 실험 한하지만 좋은 결과와 함께, 이후 어두운 그리드는 모두 망쳐 놨어요. 미리 감사드립니다!

편집 : THRESH_TRUNCATED 또는 THRESH_TOZERO으로 임계 값 기능의 로컬 버전을 그림 ... 필터를 제거하십시오. 고 대비

사진을 게시하는 평판이 없기 때문에 링크를 추가했습니다. 낮은 콘트라스트 라인 이미지 :

enter image description here

선 검출 : 충분히 큰 윈도우에 메디안 필터를 실행

enter image description here

+2

질문을 편집하고 샘플 이미지를 포함 할 수 있습니까? – Bull

+0

담당자가 없지만 다른 곳에 업로드하여 링크를 추가했습니다. – user2459109

답변

1

(11x11 말), 그리고 평균을 차감 (또는 평균 미만의 비트) 이미지 밝기로 인해 선이 더 쉽게 감지됩니다.

+0

11X11 창의 전체 평균 또는 평균을 의미합니까? – user2459109

+0

세계 평균 인 –

+0

은 모든 음수를 빼고 감산하는 쉬운 방법입니까? My for 루프가 매우 느림 : S 약한 MedianFilter가 BilateralFiltering을 실행 한 후 LCD 화면의 눈금이 필터링됩니다. – user2459109