Win8Metro(C#)数字图像处理--2.22二值图像膨胀
来源:互联网 发布:android网络编程书籍 编辑:程序博客网 时间:2024/06/08 05:52
[函数名称]
二值图像膨胀函数DilationProcess(WriteableBitmap src)
[算法说明]
膨胀算法也是属于形态学算法的范畴,前一节已经简单介绍了形态学,这里不再累赘。
我们这里介绍的膨胀算法依旧采用上一节腐蚀中的结构元素S,则算法过程如下:
用通俗的话讲就是,用结构元素作为模板在原始二值图像种平滑一遍,扫描图像的每一个像素,用结构元素中的每一个元素与其覆盖的二值图像做“或”操作(假设结构元素都为1),如果结果为1,则二值图像中对应结构元素原点位置的像素值为1,否则为0。
[函数代码]
///<summary>
/// Dilation process.
///</summary>
///<param name="src">The source image(It should be the binary image).</param>
///<returns></returns>
publicstaticWriteableBitmap DilationProcess(WriteableBitmap src)////22图像膨胀运算
{
if (src !=null)
{
int w = src.PixelWidth;
int h = src.PixelHeight;
WriteableBitmap dilationImage =newWriteableBitmap(w, h);
byte[] temp = src.PixelBuffer.ToArray();
byte[] tempMask = (byte[])temp.Clone();
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
if (i == 0 || i == w - 1 || j == 0 || j == h - 1)
{
temp[i * 4 + j * w * 4] = (byte)255;
temp[i * 4 + 1 + j * w * 4] = (byte)255;
temp[i * 4 + 2 + j * w * 4] = (byte)255;
}
else
{
if (tempMask[i * 4 - 4 + j * w * 4] == 255 || tempMask[i * 4 + j * w * 4] == 255 || tempMask[i * 4 + 4 + j * w * 4] == 255
|| tempMask[i * 4 + (j - 1) * w * 4] == 255 || tempMask[i * 4 + (j + 1) * w * 4] == 255)
{
temp[i * 4 + j * w * 4] = (byte)255;
temp[i * 4 + 1 + j * w * 4] = (byte)255;
temp[i * 4 + 2 + j * w * 4] = (byte)255;
}
else
{
temp[i * 4 + j * w * 4] = 0;
temp[i * 4 + 1 + j * w * 4] = 0;
temp[i * 4 + 2 + j * w * 4] = 0;
}
}
}
}
Stream sTemp = dilationImage.PixelBuffer.AsStream();
sTemp.Seek(0,SeekOrigin.Begin);
sTemp.Write(temp, 0, w * 4 * h);
return dilationImage;
}
else
{
returnnull;
}
}
[图像效果]
- Win8Metro(C#)数字图像处理--2.22二值图像膨胀
- Win8Metro(C#)数字图像处理--2.21二值图像腐蚀
- Win8Metro(C#)数字图像处理--2.23二值图像开运算
- Win8Metro(C#)数字图像处理--2.24二值图像闭运算
- Win8Metro(C#)数字图像处理--2.25二值图像距离变换
- Win8Metro(C#)数字图像处理--2.8图像线性变换
- Win8Metro(C#)数字图像处理--2.11图像锐化
- Win8Metro(C#)数字图像处理--2.26图像减法
- Win8Metro(C#)数字图像处理--2.3图像反色
- Win8Metro(C#)数字图像处理--2.4图像颜色聚类
- Win8Metro(C#)数字图像处理--2.5图像亮度调整
- Win8Metro(C#)数字图像处理--2.6图像对比度调整
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
- Win8Metro(C#)数字图像处理--2.9图像均值滤波
- Win8Metro(C#)数字图像处理--2.10图像中值滤波
- Win8Metro(C#)数字图像处理--2.15图像霓虹效果
- Win8Metro(C#)数字图像处理--2.16图像浮雕效果
- Win8Metro(C#)数字图像处理--2.17图像木刻效果
- oracle安装发生DefaultErrorAdvisor:37
- 计算两组数据的距离
- Excel VBA打开文件目录
- 记录用户的访问设备 Monxin专用(PHP代码函数)
- AFNetWorking的使用
- Win8Metro(C#)数字图像处理--2.22二值图像膨胀
- ios 获取网络类型
- 1分解为若干个互不相同的单位分数之和
- bt协议分析
- Win8Metro(C#)数字图像处理--2.23二值图像开运算
- 记录出错SQL语句 Monxin专用(PHP代码函数)
- Android 异常解决方法汇总
- Oracle回滚导致系统响应异常缓慢
- JSTL标签库