Atitit 图像处理—图像形态学(膨胀与腐蚀)html
1.1. 膨胀与腐蚀1java
1.3. 测试原理,能够给一个5*5pic,测试膨胀算法5ide
说概念可能很难解释,咱们来看图,首先是原图:spa
膨胀之后会变成这样:htm
腐蚀之后则会变成这样:blog
看起来可能有些莫名其妙,明明是膨胀,为何字反而变细了,而明明是腐蚀,为何字反而变粗了。
实际上,所谓膨胀应该指:
较亮色块膨胀。
而所谓腐蚀应该指:
较亮色块腐蚀。
基本原理:
膨胀是图像形态学的两个基本操做之一,另一个是腐蚀操做。最典型的应用是在二值图像
中使用这两个基本操做,是不少识别技术中重要的中间处理步骤。在灰度图像中根据阈值同
样能够完成膨胀与腐蚀操做。对一幅二值图像f(x,y)完成膨胀操做,与对图像的卷积操做类
似,要有个操做数矩阵,最多见的为3X3的矩阵,与卷积操做不一样的,是若是矩阵中的像素
点有任意一个点的值是前景色,则设置中心像素点为前景色,不然不变。
形态学运算中腐蚀,膨胀,开运算和闭运算:
1. 腐蚀是一种消除边界点,使边界向内部收缩的过程。
能够用来消除小且无心义的物体。
腐蚀的算法:
用3x3的结构元素,扫描图像的每个像素
用结构元素与其覆盖的二值图像作“与”操做
若是都为1,结果图像的该像素为1。不然为0。
结果:使二值图像减少一圈
2. 膨胀是将与物体接触的全部背景点合并到该物体中,使边界向外部扩张的过程。
能够用来填补物体中的空洞。
膨胀的算法:
用3x3的结构元素,扫描图像的每个像素
用结构元素与其覆盖的二值图像作“与”操做
若是都为0,结果图像的该像素为0。不然为1
结果:使二值图像扩大一圈
3. 先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
4. 先膨胀后腐蚀的过程称为闭运算。
用来填充物体内细小空洞、链接邻近物体、平滑其边界的同时并不明显改变其面积。
让咱们来看看其实是怎样进行膨胀运算的。在图6.14中,左边是被处理的图象X(二值图象,咱们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,若是B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。能够看出,它包括X的全部范围,就象X膨胀了一圈似的。
图6.13 膨胀的示意图
图6.14 膨胀运算
图6.15为图6.11膨胀后的结果图,可以很明显的看出膨胀的效果。
粉红色的方格每次在X/Y前进一个像素方格,就会产生一个新的输出像素,图中深蓝色的代
表要输出的像素方格,走彻底部的像素方格,就获得了全部输出像素。
图中,粉红色的矩阵表示卷积操做数矩阵,黑色表示源图像– 每一个方格表明一个像素点。
*/
public class ImgGene4test {
public static void main(String[] args) {
BufferedImage dest = new BufferedImage(5,5 ,1);
imgx.setBackgroudColor_White(dest);
dest.setRGB(2, 2, new Color(0,0,0).getRGB());
imgx.save_overwrite(dest, "C:\\00capch\\p5.jpg");
System.out.println("==f");
}
键后有个文字加粗的.不过我想这个应该知足不了你的要求.你能够先把文字栅格化,而后选择->修改->扩展选区,再进行填充.直到你想要的效果.建议你先把文字作得比你想要的大一点.再进行此操做,获得你想要效果后再缩小.由于是把选区进行扩展再填充,因此边边色起据齿,放大作再缩小这个问题就不会严重了.加分加分.
选中文字,在“字符”窗口的左下角,点第一个“T”按钮,便可变粗,若是还不够,那就按住ctrl+鼠标单击文字图层=》“选择”=》修改=》扩展,输入扩展数字肯定=》新建图层,填充便可
@Override
public BufferedImage filter(BufferedImage src, BufferedImage dest) {
BufferedImage dest2 = imgx.new_BackgroudColor_White(src.getWidth(), src.getHeight());
Matrix mtrx = new Matrix(3, 3).setImg(src);
imgx.trave(src, (x, y) -> {
System.out.println("" + x + ":" + y);
mtrx.fill_and_setMtrx_leftTop_XY(x, y);
boolean mtrx_hasAnyForgeColor = mtrx.hasAnyForgeColor(mtrx_item_color -> {
// dark,,so is forge color.. bkgrd lit..
return (imgx.isDarkColor(imgx.gray(mtrx_item_color)));
});
if (mtrx_hasAnyForgeColor) {
int forgeColor2 = mtrx.getForgeColor();
mtrxCenterXy_inImg = mtrx.getCenterXy();
try {
dest2.setRGB((int) mtrxCenterXy_inImg.get("x"), (int) mtrxCenterXy_inImg.get("y"), forgeColor2);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("ArrayIndexOutOfBoundsException x:" + x + ",y:" + y);
}
}
});
return dest2;
}
图像处理之二值膨胀及应用 - 流浪的鱼 - 博客频道 - CSDN.NET.html
图像处理之二值腐蚀 - 流浪的鱼 - 博客频道 - CSDN.NET.html
图像的膨胀与腐蚀、细化 - 公爵女子 - 博客园.html
纯java,不依赖于第三方jar的图片处理类 - dragonsoar - ITeye技术网站.html
做者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend