一个图像滤光处理程序
来源:互联网 发布:一级已备案域名购买 编辑:程序博客网 时间:2024/05/16 06:29
一个图像滤光处理程序
滤光处理是图像处理的一个重要组成部分,通俗地讲,图像的滤光处理就是透过某种颜色的玻璃去观看图像时的效果。本人用VB5编程实现了图像的滤光处理,既可以用单独的红色、绿色、蓝色进行滤光,也可以用这三种颜色的任意组合颜色实现滤光,而且任何一种颜色都可以随便调整强度,效果颇佳。下面具体介绍实现方法。
首先新建一个窗体Form1,并创建一个PictureBox控件,把Picture1的Picture属性设置为一副图像。接着引入WINDOWS的两个API函数,并在代码窗体的起始位置声明:
Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, _
ByVal x As Long,ByVal Y As Long)As Long
Private Declare Function SetPixelV Lib "gdi32" (ByVal hDC As Long, _
ByVal x As Long,ByVal Y As Long,ByVal crColor As Long) As Long
然后在Picture1的下方按水平方向连续创建三个TextBox控件,名称都设为Txt,Index属性分别为1、2、3,Text属性为空。和三个TextBox相对应,在其下方创建三个HScrollBar控件,名称都设为HS1,Index属性分别为1、2、3,Min和Value都设为0,SmallChange都设为2,LargeChange都设为10,Max都设为100。和三个HScrollBar相对应,在其下方创建三个Label控件,Caption属性分别设为“红色滤光”、“绿色滤光”、“蓝色滤光”。以上相对应的三组控件都要上下紧挨、大小适中。双击任何一个HScrollBar控件,在HS1_Change()事件中添入下列代码:
Private Sub HS1_Change(Index As Integer)
Txt(Index).Text = CStr(HS1(Index).Value)+"%"
End Sub
最后在Form1窗体的正下方创建一个CommandButton控件,名称设为ComLg,Caption属性设为“滤光处理”。双击该按钮,在ComLg_Click()事件中添入下列代码:
Private Sub ComLg_Click()
Dim hDCp, Wdh, Hgh, RedC, GreenC, BlueC, Rgbp As Long
Wdh = Picture1.ScaleWidth
Hgh = Picture1.ScaleHeight
hDCp = Picture1.hDC
For i& = 1 To Wdh
For j& = 1 To Hgh
Rgbp = GetPixel(hDCp,i&,j&) '获取图像上某点的像素值
RedC = Rghp And & HFF
GreenC = ((Rgbp And & HFF00)/256&) Mod 256&
BlueC = (Rgbp And & HFF0000)/65536
RedC = Ys(RedC + HS1(1).Value / 2 * 5)
GreenC = Ys(GreenC + HS1(2).Value / 2 * 5)
BlueC = Ys(BlueC + HS1(3).Value / 2 * 5)
Rgbp = RGB(RedC, GreenC, BlueC)
SetpixelV hDCp, i&, j&, Rgbp
Next j&
Next i&
MsgBox "图像复位后可再次进行滤光",0,"图像复位"
For i& = 1 To 3
HS1(i&).Value = 0
Txt(i&).Text = "0%"
Next i&
Set Picture1.Picture=Picture1.Image
End Sub
另外,还需加入一个校验颜色值的子函数:
Private Function Ys(ByVal mColor As Long) As Long
If mColor > 255& Then
Ys = 255
ElseIf mColor < 0 Then
Ys = 0
Else
Ys= mColor
End If
End Function
Form_load()事件中添入下列代码:
Private Sub Form_Load()
Form1.ScaleMode = 3
Picture1.ScaleMode= 3
Picture1.AutoRedraw = True
For i% = 1 To 3
Txt(i%).Text = "0%"
Next i%
Picture1.AutoRedraw = False
End Sub
按F5运行后,随便选择一种颜色或几种颜色的组合,并自由调整滤光颜色的强度,然后按下“滤光处理”按钮,即可进行滤光。
- 一个图像滤光处理程序
- 一个简单的图像处理的程序
- 快速对图片进行滤光处理
- 一般处理程序生成图像
- 图像处理的一个网站
- 处理bmp图像的程序框架
- 简单的Java图像处理程序
- DM642图像处理程序的主要结构
- 编写高效的C#图像处理程序
- 基于MATLAB的图像处理程序
- DM642图像处理程序的主要结构
- DM642图像处理程序的主要结构
- DM642图像处理程序的主要结构
- DM642图像处理程序的主要结构
- 图像算法:数字图像处理程序大全
- 图像读取及基本处理程序片段
- Android控制台程序利用GPU处理图像
- 基于MATLAB的图像处理程序(…
- 一组VB实用小程序
- 把文学和市场结合起来
- VB 串口编程调试代码(1)
- 《串口编程调试代码》之二
- 串口编程调试代码》之三
- 一个图像滤光处理程序
- 延时函数
- HTTPClient介绍
- 音乐怀想
- SharePoint 是什么?
- Java pakage和接口
- 组织培训的管理
- Studio 2005 的 101 个示例 --MSDN
- 美国人怎么看