일반적으로 화면의 사진이나 노이즈가 많은 이미지에서 대비가 낮은 선을 감지하려고합니다. 나는 두 가지 문제로 실행하는 것 :노이즈가 많은 사진에서 낮은 콘트라스트 라인 감지
나는 확실하기 때문에 화면의 노이즈/어두운 격자, 적응 임계 값 또는 가장자리 탐지 알고리즘으로 라인을 감지 할 수 없습니다. 흐림 효과는 조금 도움이되는 것 같지만 효과적이지는 않습니다.
노이즈, 조명 조건 등으로 인해 동일한 선에서 몇 개의 세그먼트 만 표시되는 경우 감지 된 선분을 단일 직선에 연결하고 싶습니다.
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.Canny
및 cv2.HoughLinesP
실험 한하지만 좋은 결과와 함께, 이후 어두운 그리드는 모두 망쳐 놨어요. 미리 감사드립니다!
편집 : THRESH_TRUNCATED
또는 THRESH_TOZERO
으로 임계 값 기능의 로컬 버전을 그림 ... 필터를 제거하십시오. 고 대비
사진을 게시하는 평판이 없기 때문에 링크를 추가했습니다. 낮은 콘트라스트 라인 이미지 :
선 검출 : 충분히 큰 윈도우에 메디안 필터를 실행
질문을 편집하고 샘플 이미지를 포함 할 수 있습니까? – Bull
담당자가 없지만 다른 곳에 업로드하여 링크를 추가했습니다. – user2459109