cv图像识别

安卓opencv全分辨率找图


houghCircles 霍夫圆检测

<p>[TOC]</p> <h5>简要描述</h5> <ul> <li>霍夫圆检测</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;">dp</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>图像分辨率。值越大分辨率越小。1=100%、2=50% 类推。</td> </tr> <tr> <td style="text-align: left;">minDist</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>圆心之间最小距离,在距离内则认为是同一个圆。</td> </tr> <tr> <td style="text-align: left;">param1</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>边缘检测算法的高阈值,通常为:100。</td> </tr> <tr> <td style="text-align: left;">param2</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>累加器阈值,值越大越可能是圆,通常为30.</td> </tr> <tr> <td style="text-align: left;">minRadius</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>检测最小半径</td> </tr> <tr> <td style="text-align: left;">maxRadius</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>检测最大半径</td> </tr> </tbody> </table> <h5>返回参数说明</h5> <p>ArrayList&lt;HashMap&lt;String,Integer&gt;&gt; | null</p> <h5>示例</h5> <pre><code class="language-java">//载入图像 var mat=cvImg.loadFromFile("/sdcard/Pictures/1.jpg",1); //均值滤波 var mat_blur=cvImg.pyrMeanShiftFiltering(mat,15,80); cvImg.toFile(mat_blur,"/sdcard/Pictures/tem1.jpg"); //灰度 var mat_gray=cvImg.gray(mat_blur); cvImg.release(mat_blur);//释放 cvImg.toFile(mat_gray,"/sdcard/Pictures/tem2.jpg"); //高斯平滑 var mat_blur=cvImg.blurGaussian(mat_gray); cvImg.toFile(mat_blur,"/sdcard/Pictures/tem3.jpg"); //霍夫圆检测 var arrayList=cvImg.houghCircles(mat_blur,1,50,100,46,10,200); //绘制圆。 for(var i=0;i&lt;arrayList.size();i++){ var color=[ random(100,255), random(100,255), random(100,255), 0 ]; cvImg.ellipse(mat, arrayList.get(i).get("ax"), arrayList.get(i).get("ay"), arrayList.get(i).get("r"), arrayList.get(i).get("r"), color,5); } cvImg.toFile(mat,"/sdcard/Pictures/tem4.jpg"); cvImg.release(mat);//释放 cvImg.release(mat_gray);//释放 cvImg.release(mat_blur);//释放</code></pre> <p>原图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=63c4cda7537e7044cd407656603bb4f8" alt="" /> 均值滤波 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=6fdd55617c48db0164f677f9eaa372cb" alt="" /> 灰度 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=1e0f5fc851b9f15c6159f1060879da79" alt="" /> 高斯滤波 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b8ad3df0a3b0ecb71374d369d94c0d46" alt="" /> 圆检测输出 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f2176af079d81a627997e2dcdbbdae62" alt="" /></p>

页面列表

ITEM_HTML