2017-12-07 2 views
3

이미지에서 텍스트로 구성된 개체를 인식하고 레이블을 지정했습니다. 첨부 된 이미지에서 오브젝트가 빨간색으로 레이블링 된 것을 볼 수 있습니다. 그래서, 나는 별도의첫 번째 줄에서 초 라인 (또는 그 이상 선)의 개체를 원하는 다른 색상을 그들에게 (것 다른 색상을 가지고 각 라인)을 제공하지만 난 그렇게 할 수 없습니다. 너는 어떤 생각이있어? 모든 답변을 주셔서 감사합니다. 이 라벨을 수행 내 MATLAB 코드의 일부입니다matlab에서 "bwlabel"을 사용하여 별도로 이미지의 이미지 (텍스트 이미지)에 레이블을 지정하는 방법은 무엇입니까?

%% Label connected components 
[L, Ne]=bwlabel(imagen); 
%% Measure properties of image regions 
propied=regionprops(L,'BoundingBox'); 
hold on 
%% Plot Bounding Box 
for n=1:size(propied,1) 
    rectangle('Position',propied(n).BoundingBox,'EdgeColor','r','LineWidth',2) 
end 

이 다른 라인에있는 모든 오브젝트가 같은 라벨 (같은 색상 = 빨간색)이 이미지를 표시합니다. enter image description here

+0

원본 이미지를 업로드 할 수도 있습니까? 선이 몇 줄인지 미리 아십니까? –

+0

@LeanderMoesinger 원본 이미지에 빨간색 직사각형이 없습니다. 두 개의 선이 있다고 가정 할 수 있습니다. 첨부 된 그림처럼. – amIllusionist

답변

1

줄이 너무 굽히지 않으면 다음 방법이 효과가 있다고 생각합니다.

  • 는 자신의 y는 K = 2 결과로 kmeans를 사용하여 좌표 완벽하지만 잘되지 않습니다 클러스터, 경계 상자의 무게 중심 찾기, 또는 regionprops 자체에서 무게 중심을 얻는다. 당신이 다음

cluster

또는

  • 는 경계 상자에 작성하여 새 이미지를 준비 클러스터 포인트 이상 값 제거와 (예를 들어, RANSAC을) 커브를 맞을 수있을 수 있습니다. filled

  • 높이가 1이고 너비가 가장 넓은 경계 상자의 너비 인 직사각형 구조 요소를 준비합니다.

  • 이 구조 요소를 사용하여 채워진 이미지의 형태 학적 닫기를 수행하십시오. 그러면 영역이 가로로 연결됩니다. 이제 두 영역을 구분하는 마스크를 얻습니다. closed

결과 이미지 (너무 어수선한이기 때문에 코드를 게시하고 있지 않다. 지침이 충분히 분명 희망) opencv를 사용하여 얻을 수 있었다.

관련 문제