2012-10-06 30 views
1

我需要使用Matlab创建两个不同的黑色二进制矩形,以覆盖两者的一部分并提取插入。使用Matlab合并两个二进制图像

如何叠加两个二进制图像?

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

我使用false(X, Y) Matlab函数创建了我的两个二进制图像。

我没有找到如何产生合并的两个图像,并提取插入。

+0

你是什么意思插入?你是指交集?此外,该功能不会产生“图像”,它只是产生矩阵。 – engineerC

+0

插入..这两个矩阵surimpose的地方..你cahn做一个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运算符,但你的答案很好。谢谢! –