# VB图像处理，（三）几个常用滤镜的实现1

A  B C D
E  F  G H
I   J   K L
M N O P

(A+B+C+E+G+I+J+K) / 8就是F周围的像素的平均值，

F=F +  Delta * Alpha

A  B C D
E  F  G H
I   J   K L
M N O P

Delta= A - (B+E+F) / 3
F=F +  Delta * Alpha

Public Sub Sharp(Optional ByVal SharpDgree As Single = 0.3)
Dim X As Long
Dim Y As Long
Dim Ix As Long
Dim Iy As Long
Dim Diff As Long
Dim Diff1 As Long
Dim Div1 As Single
Dim Div2 As Single
Dim Max As Long
On Error GoTo ErrLine

Max = 255
Done = False
TimeFilter = timeGetTime
TemplateSize = 1
Sensitivity = Sensitivity * 9
Div1 = 1 + SharpDgree
Div2 = -SharpDgree / 3
For X = 0 To OutPutWid - 1
For Y = 0 To OutPutHei -1
RR = ColOut(0, X, Y) * Div1
GG = ColOut(1, X, Y) * Div1
BB = ColOut(2, X, Y) * Div1
Ix = X + 1
Iy = Y + 1
R = ColOut(0, Ix, Iy)
R = R + ColOut(0, X, Iy) + ColOut(0, Ix, Y)
G = ColOut(1, Ix, Iy)
G = G + ColOut(1, X, Iy) + ColOut(1, Ix, Y)
B = ColOut(2, Ix, Iy)
B = B + ColOut(2, X, Iy) + ColOut(2, Ix, Y)
R = R * Div2
G = G * Div2
B = B * Div2
RR = RR + R
GG = GG + G
BB = BB + B
If RR < 0 Then RR = 0
If RR > Max Then RR = Max
If GG < 0 Then GG = 0
If GG > Max Then GG = Max
If BB < 0 Then BB = 0
If BB > Max Then BB = Max
ColOut(0, X, Y) = RR
ColOut(1, X, Y) = GG
ColOut(2, X, Y) = BB
Next
Next

Done = True
TimeFilter = timeGetTime - TimeFilter
Exit Sub
ErrLine:
Done = True
MsgBox Err.Description
End Sub

Public TimeFilter As Long      '用于记录滤镜处理所花费的时间
Dim RR As Long                 '用于保存红色分量
Dim GG As Long                '用于保存绿色分量
Dim BB As Long                 '用于保存蓝色分量

A  B C D
E  F  G H
I   J   K L
M N O P

F=(A+B+C+E+F+G+I+J+K) / 9
G=(B+C+D+F+G+H+J+K+L) / 9
...
...

A  B C D
E  F  G H
I   J   K L
M N O P
F点可以从它周围的A,B,C,E,G,I,J,K中任意选一点代替。
G点可以从它周围的B,C,D,F,H,J,K,L中任意选一点代替。
J点可以从它周围的E,F,G,I,K,M,N,O中任意选一点代替。
K点可以从它周围的F,G,H,J,L,N,O,P中任意选一点代替。

A  B C D
E  F  G H
I   J   K L
M N O P

A=B-A+127
B=C-B+127
C=D-C+127
...

A=E-A+127
B=F-B+127
C=G-C+127
...

Public Sub Emboss(Optional EmbossDirection As Integer , Optional Lighteness As Integer)
...

（这里只是说了我自己在写程序的时候用到的方法，存在很多的不足。并且因为在贴上来的时候作了部分修改，可能会存在部分错误，请各位高手不吝赐教，将您用到的更好的方法提供一下，我将不胜感激。）

VB图像处理，（七）一种邻近均值滤波器的算法介绍（去尘，去噪音）

• 本文已收录于以下专栏：

## VB图像处理，（一）像素的获取和输出

一直想自己写一个图像处理的软件。在网络上找各种图像处理方面的技术文章。但是找到的往往不是高深的理论，就是用C++等语言写出来的例程，非常不便。其实很多时候，我想找的只是一种描述，或者是伪代码，...
• WallesCai
• 2004年12月31日 01:06
• 25570

## VB图像处理，（六）图像的亮度对比度调整

• WallesCai
• 2005年01月02日 05:31
• 10437

## 用VB写高效的图像处理程序

• nisikawaguti
• 2010年01月29日 11:05
• 3793

## VB图像处理，（四）几个常用滤镜的实现2

• WallesCai
• 2005年01月01日 00:09
• 7399

## VB图像滤镜掩膜类及示例程序源代码

• 2009年12月22日 12:33
• 57KB
• 下载

## 实现各种各样图像滤镜（图像处理）效果，多达50多种效果

• 2013年11月19日 16:06
• 1.07MB
• 下载

## VB 图片处理源码

• 2016年03月05日 12:37
• 1.13MB
• 下载

## VB图像处理程序（高效，绿色)

• 2008年10月14日 10:22
• 964KB
• 下载

## 【图像处理笔记】灰度变换

﻿﻿ 最近在学习冈萨雷斯的《数字图像处理》，想把整理的笔记和自己实现的小实验整理在博客上~ 今天的主题是图像的灰度变换： g（x，y）= T [ f（x，y）] f（x，y）是输入图像...
• liuchuan__________
• 2015年09月17日 13:17
• 5427

## vb 图像处理 边缘增强 低通滤波 彩色增强 掩模匹配法 彩色变换 二值化 边缘增强 图象平滑处理 灰度拉伸 直方图

• 2010年05月27日 19:50
• 632KB
• 下载

举报原因： 您举报文章：　VB图像处理，（三）几个常用滤镜的实现1 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)