2012-10-06 3 views
1

Matlab을 사용하여 두 개의 검정색 이진 사각형을 만들어 두 부분의 오버레이와 삽입 추출이 필요합니다.Matlab을 사용하여 두 개의 이진 이미지를 병합하십시오.

2 개의 이진 이미지를 어떻게 오버레이 할 수 있습니까?

-------|----------| 
|  |  2 | 
| 1 |----|-----| 
|   | 
|-----------| 

false(X, Y) Matlab 기능을 사용하여 두 개의 이진 이미지를 만들었습니다.

두 이미지를 병합하고 삽입을 추출하는 방법을 모릅니다.

+0

삽입으로 무엇을 의미합니까? 교차로를 의미합니까? 또한이 함수는 "이미지"를 생성하지 않으며 단지 매트릭스를 생성합니다. – engineerC

+0

삽입 .. 두 행렬이 솟아 오르는 곳 .. imshow를하면 이미지가 출력됩니다 (false (x, y)). –

답변

1

변환하기 전에 두 개의 직사각형을 모두 포함 할 수있는 배경 행렬을 만들고, 직사각형이있는 영역에 배경 행렬의 값을 할당하십시오. 이렇게하면 같은 크기의 두 행렬이 생기므로 논리 연산이나 산술 연산을 수행 할 수 있습니다. 각 사각형과 배경에 다른 값을 사용하면 합계와 같은 항목이 다른 색상으로 표시됩니다. 다음은이를 보여주는 텍스트 버전입니다.

octave:11> bga = bgb = ones(10,10) 
bga = 

    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 

octave:12> bgb 
bgb = 

    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 

octave:13> a=false(3,4) 
a = 

    0 0 0 0 
    0 0 0 0 
    0 0 0 0 

octave:14> b=false(5,5) 
b = 

    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 

octave:15> bga(3:5,4:7) = a 
bga = 

    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 0 0 0 0 1 1 1 
    1 1 1 0 0 0 0 1 1 1 
    1 1 1 0 0 0 0 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 

octave:16> bgb(1:5,1:5) = b 
bgb = 

    0 0 0 0 0 1 1 1 1 1 
    0 0 0 0 0 1 1 1 1 1 
    0 0 0 0 0 1 1 1 1 1 
    0 0 0 0 0 1 1 1 1 1 
    0 0 0 0 0 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 

octave:17> bga | bgb 
ans = 

    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 0 0 1 1 1 1 1 
    1 1 1 0 0 1 1 1 1 1 
    1 1 1 0 0 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1 1 1 
+0

"변환하기 전에 두 사각형을 모두 포함 할 수있는 배경 행렬 만들기". 출력은 실제로 두 개의 직사각형을 포함하는 행렬입니다! –

+0

나는 당신의 질문에 대답했는지 아닌지 이해하지 못합니까? – engineerC

+0

끝에 AND 연산자를 사용했지만 답변이 좋았습니다. 고맙습니다! –

관련 문제