MATLAB将excel中已有二值化可达矩阵通过缩点和缩边转变为一般性骨架矩阵的具体步骤和实现程序是什么
时间: 2024-03-10 11:46:50 浏览: 32
将Excel中已有的二值化可达矩阵转变为一般性骨架矩阵的具体步骤如下:
1. 读取Excel中的二值化可达矩阵数据,存储为矩阵形式。
2. 对二值化可达矩阵进行缩点,即将相邻的1像素点合并为一个点。缩点后的矩阵中,每个点都是一个区域的中心点。
3. 对缩点后的矩阵进行缩边,即将相邻的点连成边,并将边重心作为新的节点。缩边后,原矩阵中的每个区域被转化为了一条线段。
4. 对缩边后的矩阵进行细化处理,得到一般性骨架矩阵。
以下是MATLAB实现程序的示例代码:
```matlab
% 读取Excel中的二值化可达矩阵数据
data = xlsread('binary_matrix.xlsx');
% 缩点
[m, n] = size(data);
for i = 2:m-1
for j = 2:n-1
if data(i,j) == 1
if data(i-1,j-1)+data(i-1,j)+data(i-1,j+1)+...
data(i,j-1)+data(i,j+1)+...
data(i+1,j-1)+data(i+1,j)+data(i+1,j+1) <= 1
data(i,j) = 0;
end
end
end
end
% 缩边
[m, n] = size(data);
[x, y] = meshgrid(1:n, 1:m);
x = x(:); y = y(:);
idx = find(data(:));
v = [x(idx) y(idx)];
E = delaunayTriangulation(v);
E = edges(E);
E = unique(sort(E, 2), 'rows');
G = graph(E(:,1), E(:,2));
xy = G.Edges.EndNodes;
xy = [x(xy(:,1)) y(xy(:,1)) x(xy(:,2)) y(xy(:,2))];
xy = round(mean(xy,2));
idx = sub2ind([m, n], xy(:,2), xy(:,1));
data(:) = 0;
data(idx) = 1;
% 细化处理
skel = bwmorph(data, 'thin', Inf);
```
这段代码实现了对Excel中的二值化可达矩阵进行缩点、缩边和细化处理,最终得到一般性骨架矩阵。
相关推荐
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)