<p>你要做的是一个叫做“扩张”的过程。对于二值图像,其思想是循环遍历图像中的所有像素。如果像素为'True',则使其周围的指定像素集也为'True'(由'kernel'或'structure'定义)。例如</p>
<pre><code>0,0,0,0,0
0,0,0,0,0
0,0,1,1,0
0,0,0,0,0
0,0,0,0,0
</code></pre>
<p>有核的</p>
^{pr2}$
<ol>
<li><p>当达到(2,2)时,它变为:</p>
<pre><code>0,0,0,0,0
0,0,1,0,0
0,1,1,1,0
0,0,1,0,0
0,0,0,0,0
</code></pre></li>
<li><p>当达到(2,3)时,它变为:</p>
<pre><code>0,0,0,0,0
0,0,1,1,0
0,1,1,1,1
0,0,1,1,0
0,0,0,0,0
</code></pre></li>
</ol>
<p>您可以重复此操作,或者使用其他内核。例如:</p>
<pre><code>import scipy.ndimage
import numpy as np
import matplotlib.pyplot as plt
im = np.zeros((90,90),dtype='bool')
im[30:61,30:61] = True
fig = plt.figure(figsize=(18,6))
fig.set_tight_layout(True)
fig.add_subplot(1,3,1)
plt.imshow(im,interpolation='nearest')
fig.add_subplot(1,3,2)
plt.imshow(scipy.ndimage.binary_dilation(im,iterations=4),interpolation='nearest')
fig.add_subplot(1,3,3)
plt.imshow(scipy.ndimage.binary_dilation(im,iterations=4,structure=np.ones((3,3))),interpolation='nearest')
plt.show()
</code></pre>
<p>结果是:</p>
<p><a href="https://i.stack.imgur.com/kvnKi.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kvnKi.png" alt="enter image description here"/></a></p>
<blockquote>
<p>Of course getting the 'outer' boundary is just the difference of the dilated image and the original image.</p>
</blockquote>