原文:Win8Metro(C#)数字图像处理--2.11图像锐化



[函数名称]

图像锐化函数SharpeningProcess(WriteableBitmap
src,double sharpenValue)

[函数代码]

///<summary>

///
Sharpening process.

///</summary>

///<param
name="src">Source image.</param>

///<returns></returns>

publicstaticWriteableBitmap
SharpeningProcess(WriteableBitmap src)////11锐化处理

{

if(src!=null
)

{

int
w = src.PixelWidth;

int
h = src.PixelHeight;

WriteableBitmap
sharpenImage =newWriteableBitmap(w,h);

byte[]
temp = src.PixelBuffer.ToArray();

byte[]
tempMask = (byte[])temp.Clone();

double
b = 0, g = 0, r = 0, srR = 0, srG = 0, srB = 0;

for
(int j = 1; j < h - 1; j++)

{

for
(int i = 4; i < w * 4 - 4; i += 4)

{

srB = tempMask[i + j * w * 4];

srG = tempMask[i + 1 + j * w * 4];

srR = tempMask[i + 2 + j * w * 4];

b =Math.Abs(5
* srB - tempMask[i - 4 + j * w * 4] - tempMask[i + 4 + j * w * 4] - tempMask[i + (j - 1) * w * 4] - tempMask[i + (j + 1) * w * 4]);

g =Math.Abs(5
* srG - tempMask[i - 4 + 1 + j * w * 4] - tempMask[i + 4 + 1 + j * w * 4] - tempMask[i + 1 + (j - 1) * w * 4] - tempMask[i + 1 + (j + 1) * w * 4]);

r =Math.Abs(5
* srR - tempMask[i - 4 + 2 + j * w * 4] - tempMask[i + 4 + 2 + j * w * 4] - tempMask[i + 2 + (j - 1) * w * 4] - tempMask[i + 2 + (j + 1) * w * 4]);

temp[i + j * w * 4] = (byte)(b
> 0 ? (b < 255 ? b : 255) : 0);

temp[i + 1 + j * w * 4] = (byte)(g
> 0 ? (g < 255 ? g : 255) : 0);

temp[i + 2 + j * w * 4] = (byte)(r
> 0 ? (r < 255 ? r : 255) : 0);

b = 0; g = 0; r = 0; srR = 0; srG = 0; srB = 0;

}

}

Stream
sTemp = sharpenImage.PixelBuffer.AsStream();

sTemp.Seek(0,SeekOrigin.Begin);

sTemp.Write(temp, 0, w * 4 * h);

return
sharpenImage;

}

else

{

returnnull;

}

}

 [图像效果]


Win8Metro(C#)数字图像处理--2.11图像锐化的更多相关文章

  1. Win8Metro(C#)数字图像处理--2.3图像反色

    原文:Win8Metro(C#)数字图像处理--2.3图像反色 [函数名称] 图像反色函数ContraryProcess(WriteableBitmap src) [算法说明]     反色公式如下: ...

  2. Win8Metro(C#)数字图像处理--2.33图像非线性变换

    原文:Win8Metro(C#)数字图像处理--2.33图像非线性变换  [函数名称] 图像非线性变换函数NonlinearTransformProcess(WriteableBitmap src ...

  3. Win8Metro(C#)数字图像处理--2.32图像曝光算法

    原文:Win8Metro(C#)数字图像处理--2.32图像曝光算法  [函数名称] 图像曝光函数ExposureProcess(WriteableBitmap src,int exposureV ...

  4. Win8Metro(C#)数字图像处理--2.27图像加法运算

    原文:Win8Metro(C#)数字图像处理--2.27图像加法运算  [函数名称] 图像加法函数AddProcess(WriteableBitmap src, WriteableBitmap a ...

  5. Win8Metro(C#)数字图像处理--2.28图像乘法运算

    原文:Win8Metro(C#)数字图像处理--2.28图像乘法运算  [函数名称] 图像乘法函数MultiplicationProcess(WriteableBitmap src, Writea ...

  6. Win8Metro(C#)数字图像处理--2.29图像除法运算

    原文:Win8Metro(C#)数字图像处理--2.29图像除法运算  [函数名称] 图像除法函数DivisionProcess(WriteableBitmap src, WriteableBit ...

  7. Win8Metro(C#)数字图像处理--2.26图像减法

    原文:Win8Metro(C#)数字图像处理--2.26图像减法  [函数名称] 图像减法函数SubtractionProcess(WriteableBitmap src, WriteableBi ...

  8. Win8Metro(C#)数字图像处理--2.19图像水平镜像

    原文:Win8Metro(C#)数字图像处理--2.19图像水平镜像  [函数名称] 图像水平镜像函数MirrorXProcess(WriteableBitmap src) [函数代码]      ...

  9. Win8Metro(C#)数字图像处理--2.20图像垂直镜像

    原文:Win8Metro(C#)数字图像处理--2.20图像垂直镜像  [函数名称] 图像垂直镜像函数MirrorYProcess(WriteableBitmap src) [函数代码]      ...

随机推荐

  1. Android 长按事件和短按事件同时响应

    在长按事件中的return false 改为return true就可以解决这个问题

  2. 【codeforces 758B】Blown Garland

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. ios UI控件的简单整理

    把该文件拷贝到.m文件中就能够方便的查找 /** 匿名类目:能够声明方法和变量,属性为private(不同意在外部调用,且不能被继承 */ /** 发送数据的托付方,接收数据的时代理发(即代理的反向传 ...

  4. java及jdbc与sql之间日期的转换

    javaSE中主要为日期字符串和日期对象之间的转换 JDBC中主要是util中Date与sql中作为数据库中Date的转换 public class DateDemo { public static ...

  5. BZOJ 3524 - 主席树

    传送门 题目分析 标准主席树,按照位置插入每个数,对于询问l, r, 在l-1,r两树上按照线段树搜索次数大于(r - l + 1) / 2的数. code #include<bits/stdc ...

  6. windows 7、Windows10 系统目录迁移,修改安装的默认路径:Users,Program Files,ProgramData

    Tips:本文只针对Win7.windows 10系统有过测试,其他系统尚未测试:不过大家想尝试也可.这次实验是我做的全新 win7_32位系统来测试的,windows10当然64位的系统也可.至少现 ...

  7. docker-windows随笔资料整理

    背景 业务需求:优化机器学习,IOT边缘计算性能,替换现有的虚拟机部署方案. 技术背景: .netcore python Docker 学习资料 Docker中文社区: http://www.dock ...

  8. 如何更好的利用redis

    原文地址http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html @(syoka)[re ...

  9. HTTP协议(一些报头字段的作用,如cace-control、keep-alive)

    ---恢复内容开始--- Http连接是一种短连接,是一种无状态的连接. 所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接. 如果是一个连接的话,服务器 ...

  10. 使用Ocelot做网关

    1首先创建一个json的配置文件,文件名随便取,我取Ocelot.json 这个配置文件有两种配置方式,第一种,手动填写 服务所在的ip和端口:第二种,用Consul进行服务发现 第一种如下: { & ...