最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
VB图像处理,(二)二次线性插值的应用
时间:2022-07-02 11:14:23 编辑:袖梨 来源:一聚教程网
上次讲到了用DIB方法来获取图像的像素。从这次开始将如果运用已经得到的像素来处理图像。
图像插值放大的方法有很多,最主要的有二次线性插值和三次线性插值这两种。
这次我把自己的程序中所用的二次线性插值的算法公布给大家,希望对各位要使用VB写类似程序的朋友有所帮助。
程序中用到的API、数据类型、全局变量的定义请参考上一篇:
《VB图像处理,(一)像素的获取和输出 》
Public Sub ZoomImage(ByVal OutPutWidth As Long, ByVal OutputHeight As Long)
Dim I As Long
Dim L As Long
Dim X As Long
Dim Y As Long
Dim Xb As Long
Dim Yb As Long
Dim Xe As Long
Dim Ye As Long
Dim M As Integer
Dim N As Integer
Dim CurR As Long
Dim CurG As Long
Dim CurB As Long
Dim NxtR As Integer
Dim NxtG As Integer
Dim NxtB As Integer
Dim DR As Single
Dim DG As Single
Dim DB As Single
Dim DRt As Single
Dim DGt As Single
Dim DBt As Single
Dim Xratio As Single
Dim Yratio As Single
Dim CurStep As Single
Dim NxtStep As Single
Dim NegN As Single
On Error GoTo ErrLine
If Not CanZoom Then Exit Sub
Done = False
OutPutWid = OutPutWidth - 1
OutPutHei = OutputHeight - 1
I = (Bits 8) - 1
ReDim ColTmp(I, InPutWid, OutPutHei) '先从Y方向进行缩放处理,结果保存在此中间数组内
ReDim ColOut(I, OutPutWid, OutPutHei)
Xratio = OutPutWid / InPutWid
Yratio = OutPutHei / InPutHei
TimeZoom = timeGetTime
NegN = 1 / Int(Yratio + 1)
For X = 0 To InPutWid
CurR = ColVal(0, X, 0)
CurG = ColVal(1, X, 0)
CurB = ColVal(2, X, 0)
图像插值放大的方法有很多,最主要的有二次线性插值和三次线性插值这两种。
这次我把自己的程序中所用的二次线性插值的算法公布给大家,希望对各位要使用VB写类似程序的朋友有所帮助。
程序中用到的API、数据类型、全局变量的定义请参考上一篇:
《VB图像处理,(一)像素的获取和输出 》
Public Sub ZoomImage(ByVal OutPutWidth As Long, ByVal OutputHeight As Long)
Dim I As Long
Dim L As Long
Dim X As Long
Dim Y As Long
Dim Xb As Long
Dim Yb As Long
Dim Xe As Long
Dim Ye As Long
Dim M As Integer
Dim N As Integer
Dim CurR As Long
Dim CurG As Long
Dim CurB As Long
Dim NxtR As Integer
Dim NxtG As Integer
Dim NxtB As Integer
Dim DR As Single
Dim DG As Single
Dim DB As Single
Dim DRt As Single
Dim DGt As Single
Dim DBt As Single
Dim Xratio As Single
Dim Yratio As Single
Dim CurStep As Single
Dim NxtStep As Single
Dim NegN As Single
On Error GoTo ErrLine
If Not CanZoom Then Exit Sub
Done = False
OutPutWid = OutPutWidth - 1
OutPutHei = OutputHeight - 1
I = (Bits 8) - 1
ReDim ColTmp(I, InPutWid, OutPutHei) '先从Y方向进行缩放处理,结果保存在此中间数组内
ReDim ColOut(I, OutPutWid, OutPutHei)
Xratio = OutPutWid / InPutWid
Yratio = OutPutHei / InPutHei
TimeZoom = timeGetTime
NegN = 1 / Int(Yratio + 1)
For X = 0 To InPutWid
CurR = ColVal(0, X, 0)
CurG = ColVal(1, X, 0)
CurB = ColVal(2, X, 0)
相关文章
- 哔咔漫画app官网入口-哔咔漫画网页版官方直达 03-12
- 苹果18手机什么时候上市-预计价格多少-苹果18手机图片 03-12
- b站网页版登录入口-哔哩哔哩官网登录入口 03-12
- twitter官网网页版-twitter官方登录界面 03-12
- 谜漫画最新版下载安卓安装包-谜漫画安卓版官方下载地址入口 03-12
- manwa2漫蛙漫画官网-漫蛙manwa2漫画站 03-12