我想在matlab中编写一个简单的二进制重建算法。到目前为止,我知道这个算法是在开口之后使用的,以恢复连接到开口的原始图像片段。我还发现它可以删除与较大对象不相交的小区域,而不会扭曲大对象的小特征。
这是伪代码:
1. J = I o Z; %open input image with some structre element
2. T = J;
3. J = J Z(k) % Dilate J with Z(k). this is my first problems. if Z in first line is structure element, then what is Z(k)?
4. J = I AND J % my second problem. how to AND these two on matlab.
5. if J ~= T go to 2.
6. else stop and J is the reconstructed image.
假设我们有这个图像作为输入:
重建后的图像如下:
使用上面提到的代码,到目前为止,我已经写了:
img = imread ('Input.jpg');
img = im2bw(img, 0.8);
J = bwmorph(img,'open');
T = J;
J = bwmorph(J, 'dilate');
我的问题是如何在 MATLAB 中正确结束。
我的第二个问题是我是否要使用imdilate
而不是bwmorph
在提到的示例中应该是我的结构元素?