표면 감지


9

이미지에서 어떻게 큰 영역의 회색 (흰색에서 검은 색까지)을 분할합니까? (opencv에서 이것을 알고 있다면, opencv에서 무엇을하는지 말함으로써 대답 할 수 있습니다). 예를 들어이 그림이 주어지면 :

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

이 영역은 넓은 회색 영역이며 나머지 영역과 명확하게 구분됩니다. 이 영역에 회색 음영 이있을 있고 실시간으로 작동 해야하는 경우 이를 어떻게 분할 할 수 있습니까 ?

미리 Thx.


여러 회색 영역이 명확하게 구분됩니다. 원하는 결과를 보여줄 수 있습니까?
Dr. belisarius

내가 원하는 결과는 오른쪽 상단과 왼쪽 모서리의 좌표와 중간 회색 사각형의 왼쪽 하단 모서리의 좌표입니다.
Olivier_s_j

처리해야 할 이미지의 환경과 잠재적 차이에 대해 다른 점을 말씀해 주시겠습니까? 대상이 항상 이미지 중간에 있습니까? 같은 크기의 다른 회색 사각형이 있습니까? 그들이 같은 회색 음영으로 표시되면 어떻게됩니까? 그것을 식별하기 위해 사용할 수있는 다른 것들이 있습니까? 항상 상단에 작은 "T"모양이 있습니까?
justis

안녕, 대상은 항상 이미지의 중간 근처에 있지 않습니다. 대상은 항상 일종의 사각형입니다. (벽일 수도 있습니다). 직사각형이 여러 개인 경우 감지해야하지만 크기가 커야합니다. 작은 부분은 버릴 수 있습니다. 모두 같은 종류의 회색으로 표시되면 모두 감지해야하지만 이러한 일이 발생할 가능성은 매우 적습니다. 감지 할 수있는 유일한 속성은 표면이 전체 표면에 대해 동일한 회색 (거의 또는 더 적은)을 가지며 직사각형이라는 것입니다. 작은 T 모양의 상단마다있을 실 거예요
Olivier_s_j

답변:


9

유역 알고리즘 또는 그래프 컷을 사용하여 회색 영역을 적절히 분할 할 수 있습니다. 유역은 opencv에서 사용할 수 있지만 그래프 컷은 아직 없습니다. (BTW Kinect의 깊이 맵입니까?)


1
opencv의 유역 기능에는 입력으로 8 비트 3 채널 이미지가 필요했습니다. 내 깊이 맵은 8 비트 1 이미지입니다. 어떻게 해결할 수 있습니까?
Olivier_s_j

/ * 이미지 속성을 얻는다 / width = src-> width; 높이 = src-> 높이; / 그레이 스케일 버전을위한 새로운 이미지 생성 * / IplImage * dst = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 1); cvCvtColor (src, dst, CV_RGB2GRAY);
nav

또 다른 질문은 방금 유역 기능이 다른 이미지에서 작동한다는 것입니다 (opencv의 예). 그러나 그들은 컬러 이미지와 바이너리 이미지로 시작합니다. 이미지가 1 개만 있습니다 ... grascale 이미지. 마스크가 무엇인지에 대한 아이디어가 있습니까 (두 번째 입력 변수)?
Olivier_s_j

4

Mathematica에서는 다음과 같은 작업을 수행 할 수 있습니다.

Colorize[MorphologicalComponents[
  ColorNegate@
   Erosion[Dilation[
     DeleteSmallComponents[
      Erosion[Binarize[
        GradientFilter[
         ColorConvert[Import@"http://i.stack.imgur.com/XdnaW.png", 
          "RGB"], 2], .015], 1], 100], 2], 2]], 
 ColorFunction -> "ThermometerColors"]

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

이 코드를 이미지 처리 라이브러리로 변환 할 수 있습니다.


안녕, 좋아 보인다 그러나 나는 수학이 없습니다. 하지만이 그림의 회색조를 기반으로 임계 값을 사용했다고 추측합니다. 어쩌면 코드로 약간의 정보를 줄 수 있습니까? Thx
Olivier_s_j


좋아, 내가 제안한대로 했어. 그러나 Binarize를 사용하여 주어진 값에서 임계 값을 지정하는 것 같습니다. 내 경우에는 불가능합니다. 넓은 영역의 회색 음영이 다를 수 있습니다. 예를 들어 중간 표면이 매우 연한 회색 일 수 있습니다. 그리고 임계 값이 작동하지 않습니다.
Olivier_s_j
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.