2016-06-18 8 views
1

OpenCV 3.1과 Visual Studio C++를 사용하고 있습니다.OpenCV "Blured Corners"감지기 (C++)

나는 구석이 아닌 곡선, 사각형 또는 원형을 감지 할 목표. 즉, 흐린 문자의 위치를 ​​찾고 싶습니다. 내 관심의 다음 영역의 영역 : 그들은 현재시 - 토마시 코너 검출기로 검출 할 수있는 오렌지보다 더 흐리게하기 때문에

Areas of interest

붉은 영역은 높은 우선 순위를 가지고있다.

내가

을 시도 내가시 - 토마시 코너 검출기를 테스트 한 - 코드는 사용자가 선명한 이미지가있을 때 텍스트 영역을 찾기 위해 중대하다이 튜토리얼 http://docs.opencv.org/2.4/doc/tutorials/features2d/trackingmotion/good_features_to_track/good_features_to_track.html에 배치됩니다. 비슷한 (아주 좋은) 성능을 가지고 Blured 텍스트를 감지 할 수있는 OpenCV를 사용하는 알고리즘을 찾고 싶습니다. 텍스트가 너무 많이 블레 싱되는 영역 (모서리를 탐지하는 것은 불가능합니다)은 무시해야합니다. 또한 선명도가 좋은 부분은 무시해야합니다. 여기

내가 뭘하려 예입니다 - 이것은시 - 토마시 튜토리얼에서 결과입니다

이것은 원본 이미지 :

Source image

그리고이 내가 무엇을 얻을

Results

상위 이미지 매개 변수 minDistance = 5, qualityLevel = 0.01, 하위 이미지 minDistan CE = 10, qualityLevel = 0.05 PARAMS의 나머지는 모두 이미지에 대해 동일합니다

int blockSize = 3; bool useHarrisDetector = false; double k = 0.04; 

잘못된 결과가 Blured 등 텍스트를 찾지 못한 것입니다 - 우측 상단 또는 하단 왼쪽에있는 숫자 "195" 예 "14ms"및/또는 "19ms". 오히려 그것은 내가 원하는 것만 큼 좋은 결과를 찾지 못했습니다.

날카로운 영역을 흐리게하고 blured 영역을 날카롭게하는 일종의 커널을 사용할 수 있다면 아마도 Shi-Tomasi 코너 탐지기가 결과를 찾을 수있을 것이라고 생각합니다.

팁을 얻는 방법에 대한 팁?

+0

이 경우 많은 신뢰성을 기대하지 마십시오. 쓰레기 투입/쓰레기 배출 원칙은 전액 적용됩니다. –

답변

0

나는 작은 아이디어를 생각할 수 있지만 성능이 좋지는 않습니다. 창 (3 * 3 또는 더 나은 성능을 위해 더 큰)에 의해 각각의 반복에 이미지 창을 통해

반복 처리가 수행

  1. 블러이 창.
  2. 흐리게하기 전과 흐리게하기 전의 창 사이에 cv::Norm을 계산하십시오. 각 창마다이 값을 저장하십시오.흐림이 높을 때

    1. 그들은 낮은 :

    이 값은 속성이 있습니다. 흐림는

이제이 값을 통해 이동하고 기준을 충족하는 값을 찾을 수 낮을 때

  • 그들은 높다.