나는 "진짜"이미지 주위에 어떤 종류의 경계선이있는 서로 다른 이미지를 가지고 있습니다. 내가 성취하고자하는 것은 "진짜"이미지 (크기와 위치는 픽셀 단위)를 찾는 것입니다.이미지 내에서 이미지 찾기 (객체 감지)
는 나에게 도전은 경계 (이 예에서는 상어와 함께 물)와 "진짜"이미지 (검은 색이나 소음이 많은 회색의 모든 종류의 수 있습니다) 항상 검은되지 않는 것입니다 색상, 채도, 색상의 조합을 가질 수 있습니다 ...
일반적으로 저는 Canny, Blob 감지, hough 선 등과 같은 알고리즘을 알고 있지만, 이제 막 사용하기 시작했습니다. 지금까지 특정 이미지의 테두리를 찾을 수 있었지만 같은 알고리즘과 매개 변수를 다음 이미지에 적용하자 마자 작동하지 않습니다. 나의 현재의 접근 방식은이 (의사 코드) 다음과 같습니다
- 변환이
CvInvoke.Canny(_processedImage, imgEdges, 60, 100)
로
- 감지 모서리
CvInvoke.GaussianBlur(_processedImage, bluredImage, New Drawing.Size(5, 5), 0)
- 치화와
CvInvoke.PyrDown(srcImage, targetImage)
및CvInvoke.PyrUp(srcImage, targetImage)
- 흐림 이미지
CvInvoke.CvtColor(_processedImage, tempMat, CvEnum.ColorConversion.Rgb2Gray)
- 다운 샘플링을 회색으로
- `CvInvoke.FindContours (_processedImage, contours, Nothing, CvE)로 윤곽선 찾기
- Thresholding saturation channel and bounding box
- Thresholding, canny edge and finding contours : num.RetrType.External, CvEnum.ChainApproxMethod.ChainApproxSimple)는
- 는 가장 큰 윤곽은 실제 이미지가 이미 예에 따라 서로 다른 접근 방식을 시도
CvInvoke.Threshold(_processedImage, blackWhiteImage, _parameters.BinarizeThreshold, 255, CvEnum.ThresholdType.Binary)
있다고 가정
특히 적절한 매개 변수를 찾는 방법에 대한 힌트 모든 이미지에 대해) 적응 (adaptive) 임계 값 및 캐니 (canny) 알고리즘뿐만 아니라 처리 파이프 라인 개선을위한 아이디어도 높이 평가 될 것입니다.
아이디어와 링크를 제공해 주셔서 감사합니다. 이 사실을 정확히 이해합니까? 원본 이미지와 동일한 크기의 완전히 검은 색 이미지로 시작하여 원본 이미지를 검정색으로 빼십시오. 질문에서 언급했듯이 국경은 항상 검은 색이 아니라 회색의 종류입니다. 그래서 국경을 또 다른 회색으로 끝낼 것입니다, 맞습니까? 다음 문제는 내부 이미지의 좌표와 크기가 필요하다는 것입니다. 그렇게하는 방법? 초보자 질문에 대해 유감이지만,이 멍청이는 정말로 나에게 분명하지 않습니다. –
완전히 검은 색 이미지를 빼는 것은 당연히 아무 작업이 아니지만 다른 것을 뺄 때는 유용 할 수 있습니다. BTW OpenCV에는 이미지 간의 절대 차이를 계산하고 최대 값을 찾는 기능이 내장되어 있습니다. – NickJH