1

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

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

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

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

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

4

1 回答 1

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
于 2012-10-06T15:35:27.473 回答