使用Matlab合并两个二进制图像

时间:2012-10-06 14:52:15

标签: image matlab

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

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

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

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

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

1 个答案:

答案 0 :(得分: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