zhangSuen 骨架提取算法
<p>[TOC]</p>
<h5>简要描述</h5>
<ul>
<li>zhangSuen 骨架提取算法。在图像特征识别领域很有作用。配合轮廓提取、连通域提取可获得骨架详细信息 <strong>V 2.1.2 以及以上版本可用</strong></li>
</ul>
<p>【该算法在JAVA代码层做了高度优化,只能提取前景色必须为白色的骨架,如果为黑色,请先使用not方法,取反后再输入】</p>
<h5>参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">mat</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">mat</td>
<td>欲转换的mat对象 必须cv_8UC1 格式</td>
</tr>
</tbody>
</table>
<h5>返回参数说明</h5>
<p>mat | null</p>
<h5>提取骨架</h5>
<pre><code class="language-java"> //载入图
var mat_1=cvImg.loadFromFile('/sdcard/Pictures/t1.png',1);
//转到灰度
var mat_gray=cvImg.toGray(mat_1);
//二值化
var mat_two=cvImg.threshold(mat_gray,0,100,255);
//骨架提取
var mat_骨架图=cvImg.zhangSuen(mat_two);
//保存到文件
cvImg.toFile(mat_骨架图,'/sdcard/Pictures/骨架图.png');</code></pre>
<p>原图:
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4cd7fa101c38d3fa3c8de7de7fbebfd4&file=file.png" alt="" /></p>
<p>提取后:
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=814d663d1148adee77344e545e533645&file=file.png" alt="" /></p>
<h5>提取骨架(前景为黑色时,先取反后提取)</h5>
<pre><code class="language-java"> //载入图
var mat_1=cvImg.loadFromFile('/sdcard/Pictures/t4.png',1);
//转到灰度
var mat_gray=cvImg.toGray(mat_1);
//二值化
var mat_two=cvImg.threshold(mat_gray,0,100,255);
//如果前景色是黑色,则取反运算一次,将前景和背景对调。
var mat_not=cvImg.not(mat_two)
//骨架提取
var mat_骨架图=cvImg.zhangSuen(mat_not);
//保存到文件
cvImg.toFile(mat_骨架图,'/sdcard/Pictures/骨架图.png');</code></pre>
<p>原图
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d5cb9d80ca4fe76f39a4293e1f1fbed4&file=file.png" alt="" /></p>
<p>提取骨架后(提取骨架后,如果想把前景和背景还原回去,这个输出图,可以再次进行一个not运算还原)
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=235bd02357fc1e7e527da3ee7c116082&file=file.png" alt="" /></p>