템플릿 매칭 전에 필요한 이미지 처리 작업


13

글쎄, 이것은 이미지 처리 수업을 들지 않았다는 것을 보여줄 수 있습니다.

이미지의 객체와 일치시키는이 템플릿이 있습니다. 그러나 예를 들어 이미지의 실제 객체는 두 번째 이미지가 아니라 그 모양이됩니다. 템플릿 일치를 위해 두 번째 이미지와 같은 이미지를 준비하려면 어떤 작업을 수행해야합니까? 참고로, 세 번째 이미지는 이상적인 매칭을 보여줍니다.

다른 아이디어로는 템플릿을 이미지에 맞 춥니 다. 즉, 템플릿의 좌표와 일치하도록 이미지에 네 개의 모서리 좌표를 제공합니다. 그런 다음 템플릿을 영역에 맞추는 방법을 계산합니다.

업데이트 : 문제가 해결되었습니다. 아래에서 선택한 답변 덕분에. 이미지에 템플릿을 성공적으로 적용했습니다. 마지막 이미지는 결과를 보여줍니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


당신은 그 하얀 격자에 맞지 않을 것입니다. 두 번째 이미지의 실제 화려한 격자를 일치시키고 싶습니까?
endolith

@endolith 어느 쪽이든 괜찮다고 생각합니다.
태 성 신

알고리즘의 기본 개념을 공유 할 수 있습니까? 차트에 대해서도 동일한 작업을 수행해야합니다.
Gilad

답변:


9

게시 한 샘플 이미지는 상대적으로 강한 원근법 (표면 법선 방향에서 직접 이미지화되지 않음)으로, 템플릿 사용 기법 마녀 사용 블록 처리에 문제를 일으킬 수 있습니다. 나는 당신이 강한 원근법으로 이미지를 가져와야한다고 가정합니다. 그래서 우리가 가장 먼저해야 할 것은 원근 투영을 제거하고 수정 된 이미지 ( "직선 이미지")를 가져올 이미지 변환을 추정하는 것입니다.

모양을 알 때 원근 투영 보정

전처리의 궁극적 인 목표는 컬러 차트의 배경 인 회색 사각형의 모서리를 찾는 것입니다. 나는 상수 값으로 단순히 임계 값으로 시작했습니다. Literature / web에는 이미지에 조명이 고르지 않을 때 임계 값을 지정하는 방법에 대한 많은 정보가 있지만 가능한 경우 조명이 상대적으로 균일하도록 이미징 설정을 수정하십시오.

상수 값으로 임계 값

컬러 차트는 화면의 상당 부분을 차지하므로 이미지의 연속 영역 중 가장 큰 부분 일 것입니다. 각기 다른 연결된 영역에 고유 인덱스를 부여하는 많은 흑백 레이블 기능 (MATLAB bwlabel, IPPs LabelMarkers, OpenCV에 외부 라이브러리 cvblob이 있음)이 있습니다. 레이블링 후 히스토그램을 사용하여 연결된 구성 요소의 영역을 계산 한 다음 가장 큰 영역이있는 구성 요소를 선택할 수 있습니다.

가장 큰 얼룩 찾기

구성 요소에 구멍이 없도록 구성 요소를 채우는 것이 좋습니다. 이렇게하면 가장자리 픽셀 수가 줄어 듭니다.

얼룩 채우기

이제 가장자리 찾기 연산자 (그라디언트 기반 방법을 사용했지만 검은 색 픽셀에 연결된 흰색 픽셀을 따라 가장자리를 추적 할 수 있음)를 사용하여 보더에 속하는 픽셀을 얻을 수 있습니다.

가장자리 찾기

우리가 관심있는 대상은 사각형이므로, 강력한 라인 피팅 (RANSAC)을 사용하여 가장자리 픽셀에 4 개의 라인을 장착했습니다. 새 선을 찾은 후 찾은 선에 가까운 모든 점을 제거했습니다. 이렇게하면 후속 피팅 작업이 객체의 다른 모서리를 반환합니다. 마지막으로 모든 모서리가 발견되면 선 세트 사이의 가능한 모든 교차점을 계산했습니다. 결과 포인트 세트에서 이미지 외부의 모든 포인트를 제거했습니다.

HH

x=HX

그런 다음이 변환 행렬을 사용하여 색상 차트가 표면 법선 방향에서 직선으로 이미지화되도록 원본 이미지를 변환 할 수 있습니다.

선을 가장자리에 맞추기

H

여전히 템플릿 일치를 원한다면 적절한 템플릿 일치 방법을 사용할 수 있습니다. 이미지가 이미 수정되었으므로 회전 / 스케일이 변하지 않아도됩니다.

올바른 관점


1

가장자리 감지로 시작하십시오. 그런 다음 Hough 변환을 사용하여 직선을 감지하십시오. 그런 다음 어떤 선이 평행하고 어떤 선이 수직이어야하는지 알아냅니다. 그런 다음 투영 변환을 추정하여 수직이어야하는 선이 실제로 수직이되도록합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.