dilate 高通平滑图像(膨胀)
<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;">kw,kh</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>积卷核大小,通常,3x3\5x5</td>
</tr>
<tr>
<td style="text-align: left;">kernel_type</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>积卷核类型、形状。0、MORPH RECT:矩形。</br>1、MORPH CROSS:十字交又。</br>2、MORPH ELLIPSE:椭圆或者圆形。</td>
</tr>
</tbody>
</table>
<h5>返回参数说明</h5>
<p>mat | null</p>
<h5>示例</h5>
<pre><code class="language-java">//载入动漫图像
var mat=cvImg.loadFromFile("/sdcard/Pictures/t5.png");
var y=cvImg.getHeight(mat);
var x=cvImg.getWidth(mat);
//3*3 积卷
var mat_均值滤波=cvImg.blur(mat,9,9);
cvImg.drawText(mat_均值滤波,"均值滤波 9*9 积卷",x/3,y-20,22,[255,255,0,255]);
var mat_高斯滤波=cvImg.blurGaussian (mat,9,9,-1,-1,4);
cvImg.drawText(mat_高斯滤波,"高斯滤波 9*9 积卷",x/3,y-20,22,[255,255,0,255]);
var mat_中值滤波=cvImg.blurMedian (mat,9);
cvImg.drawText(mat_中值滤波,"中值滤波 9*9 积卷",x/3,y-20,22,[255,255,0,255]);
var mat_高通滤波=cvImg.dilate (mat,9,9,0);
cvImg.drawText(mat_高通滤波,"高通滤波 9*9 积卷",x/3,y-20,22,[255,255,0,255]);
var mat_低通滤波=cvImg.derode (mat,9,9,0);
cvImg.drawText(mat_低通滤波,"低通滤波 9*9 积卷",x/3,y-20,22,[255,255,0,255]);
var mat_高斯双边滤波=cvImg.bilateralFilter (mat,0,150,20);
cvImg.drawText(mat_高斯双边滤波,"高斯双边 颜权:150 空权:20 ",10,y-20,22,[255,255,0,255]);
var mat_均值迁移=cvImg.pyrMeanShiftFiltering (mat,10,50);
cvImg.drawText(mat_均值迁移,"均值迁移 彩空 10 范围 50",10,y-20,22,[255,255,0,255]);
var mat_自定义滤波=cvImg.filter2D (mat,-1,3,3,[
0,-1,0,
-1,5,-1,
0,-1,0
]);
cvImg.drawText(mat_自定义滤波,"自定义滤波,算子",10,y-20,22,[255,255,0,255]);
//加到组
var matArr=[mat_均值滤波,mat_高斯滤波,mat_中值滤波,mat_高通滤波,mat_低通滤波,mat_高斯双边滤波,mat_均值迁移,mat_自定义滤波]
//创建空mat
var mat_out=cvImg.zeros(cvImg.getWidth(mat)*2,cvImg.getHeight(mat)*matArr.length,cvImg.getType(mat));
//原图写字
cvImg.drawText(mat,"原图",x/3,y-20,22,[255,255,0,255]);
for(let i=0;i<matArr.length;i++){
cvImg.bitBlt(mat_out,0,i*cvImg.getHeight(mat),-1,-1,matArr[i],0,0,-1,-1,1,0);//处理后的图
cvImg.bitBlt(mat_out,cvImg.getWidth(mat),i*cvImg.getHeight(mat),-1,-1,mat,0,0,-1,-1,1,0);//原图
cvImg.release(matArr[i])
}
//保存到文件
cvImg.toFile(mat_out,"/sdcard/Pictures/tem1.jpg");
//释放
cvImg.release(mat);
cvImg.release(mat_out);
</code></pre>
<p>结果,各个滤波都有不同的特性,在图片处理领域是极其重要的存在!
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=8c49100ddd80e1d680d187cd8e09ac9a&file=file.jpg" alt="" /></p>