houghLinesP 霍夫直线检测
<p>[TOC]</p>
<h5>简要描述</h5>
<ul>
<li>霍夫直线检测。输通常先canny检测好边缘再操作。</li>
</ul>
<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对象</td>
</tr>
<tr>
<td style="text-align: left;">rho</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>极坐标空间r值每次的步长,通常为:1</td>
</tr>
<tr>
<td style="text-align: left;">theta</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>角度每次叠增值 ,通常为:1</td>
</tr>
<tr>
<td style="text-align: left;">threshold</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>表示大于xx个像素长度的线段才会被检测到。</td>
</tr>
<tr>
<td style="text-align: left;">minLineLength</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>表示可以检测的最小线段长度,根据实际需要进行设置。</td>
</tr>
<tr>
<td style="text-align: left;">maxLineGap</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>表示小于3个像素的两个相邻线段可以连接起来。</td>
</tr>
</tbody>
</table>
<h5>返回参数说明</h5>
<p>ArrayList<HashMap<String,Integer>> | null
(参考示例用法)</p>
<h5>示例</h5>
<pre><code class="language-java"> //载入动漫图像(加载灰度)
var mat=cvImg.loadFromFile("/sdcard/Pictures/tem.jpg",0);
cvImg.toFile(mat,"/sdcard/Pictures/tem2.jpg");
//边缘检测
var mat_canny=cvImg.canny(mat);
cvImg.toFile(mat_canny,"/sdcard/Pictures/tem3.jpg");
//霍夫直线检测
var arrayList=cvImg.houghLinesP(mat_canny,1,1,20,10,3);
cvImg.release(mat);//释放灰度图
var mat=cvImg.loadFromFile("/sdcard/Pictures/tem.jpg",1);//加载彩色原图
//在新加载的加载彩色原图上,绘制直线。
for(var i=0;i<arrayList.size();i++){
var color=[
random(100,255),
random(100,255),
random(100,255),
0
];
cvImg.line(mat,
arrayList.get(i).get("sx"),
arrayList.get(i).get("sy"),
arrayList.get(i).get("ex"),
arrayList.get(i).get("ey"),
color,2);
}
cvImg.toFile(mat,"/sdcard/Pictures/tem4.jpg");
cvImg.release(mat);//释放
cvImg.release(mat_canny);//释放</code></pre>
<p>原图
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ea2ccffda73019fe53921da9273e4c26" alt="" />
灰度
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b54cccef27143f702b2e3b34800829f1" alt="" />
边缘检测
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=cb3b4349b83b9c56175fb93ad9d79cc1" alt="" />
绘制直线检测
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=241d24eaba96f40372a1420943bbeb11" alt="" /></p>
<p>、</p>