当前位置:首页 > 代码 > 正文

对比度增强vb代码的简单介绍

admin 发布:2022-12-19 23:20 152


本篇文章给大家谈谈对比度增强vb代码,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

matlab中,使用什么程序能增加图像的对比度?

1、介绍Matlab中对图像的操作,首先介绍图像的读入。使用imread命令:比如有aa.png文件,我们要读入的话,有两种方法:一是直接双击,出现如下对话框,点击finish就可以了。二是使用命令:aa = imread('aa.png');。

2、图像生成之后,以aa为例,要想写入进图像bb.png,使用如下命令:imwrite(aa,'bb.png');可以看到bb与aa的图形相同。

3、也可以将bb保存成其他格式数据:imwrite(aa,'bb.jpg');matlab中有许多格式数据,jpg、tiff等。

4、介绍图像的展示,使用imshow命令:imshow(aa)。

5、图像展示之后,还可以返回句柄:句柄中可以修改展示后figure中的各种属性。

如何用vb 调整显示器亮度对比度设置

新的N卡orA卡驱动都有个接口可以通过软件控制亮度和对比度,具体资料要到他们网站找文档去看

如何用histeq函数来增强真彩色图像的对比度

貌似只能通过灰度图来展示吧,除非你不显示直方图。因为你要用imhist就只能用灰度图。给你段我自己编的程序自己试试,把图片换成你自己的。

这是imadjust的,让图片亮度变暗。

I=imread('d:\sea.jpg');

I=rgb2gray(I);

J=imadjust(I,[],[0 0.5]);

%通过修改highout

K=imadjust(I,[],[],2);

%通过修改r(描述I,J关系曲线形状)

subplot(231),imshow(I);

subplot(232),imshow(J);

subplot(233),imshow(K);

subplot(234),imhist(I,64);

subplot(235),imhist(J,64);

subplot(236),imhist(K,64);

这是直方图均衡化的。

%直方图均衡化,令对比度自适应直方图均衡化

I=imread('d:\star.jpg');

I=rgb2gray(I);

J=adapthisteq(I);

subplot(221),imshow(I)

title('原图');

subplot(222),imshow(J)

title('直方图均衡化后的结果')

subplot(223),imhist(I,64)

title('原图的直方图');

subplot(224),imhist(J,64)

title('直方图均衡化后的结果的直方图');

直方图均衡化应该找那种不是很清楚的,最好是比较暗的图片,能让灰度值提高后把那些不清楚的地方显示出来。

对比度增强

对比度增强

对比度增强是增强技术中的一种比较简单又十分重要的方法。

对于输入图像f(x,y),处理后的图像为g(x,y),则对比度增强方法表示为:

1、线性变换

如果原图像f(x,y) 的灰度范围是[m,M],我们希望变换后的图像g(x,y)的灰度范围是[n,N],那么变换是:

3、非线性变换

从原理上间,我们可以用数学上的一些非线性函数进行变换,比如平方、指数、对数、幂等变换,但通常使用的是对数变换或幂变换

对数变换长用来扩展低值灰度、压缩g高值灰度,这样可以使得低值灰度的图像细节更加容易看清。对数变换表达式为:

常数C用于使变换后的图像g的灰度动态范围符合要求。用于图像获取、显示、打印的许多装置的响应都是幂函数。例如,设f为图像的灰度值,r为CCD图像传感器或胶片等的入射光的强度,则输入光强度与输出信号之间关系可以表示为:

可以实现伽玛校正,一般伽玛取值范围是:

4、其他变换

vb改屏幕亮度

下面是改变屏幕的亮度的代码。

复制下面代码,保存为form1.frm,然后双击打开,并运行,即可看到效果。

VERSION 5.00

Begin VB.Form Form1

Caption = "Form1"

ClientHeight = 3660

ClientLeft = 60

ClientTop = 450

ClientWidth = 5865

LinkTopic = "Form1"

ScaleHeight = 3660

ScaleWidth = 5865

StartUpPosition = 3 '窗口缺省

Begin VB.VScrollBar Vb

Height = 375

Left = 4920

TabIndex = 9

Top = 1680

Width = 255

End

Begin VB.VScrollBar Vg

Height = 375

Left = 4920

TabIndex = 8

Top = 1200

Width = 255

End

Begin VB.VScrollBar vr

Height = 375

Left = 4920

TabIndex = 7

Top = 720

Width = 255

End

Begin VB.VScrollBar vAll

Height = 375

Left = 4920

TabIndex = 6

Top = 240

Width = 255

End

Begin VB.TextBox tBlue

Height = 375

Left = 4200

TabIndex = 5

Top = 1680

Width = 735

End

Begin VB.TextBox tGreen

Height = 375

Left = 4200

TabIndex = 4

Top = 1200

Width = 735

End

Begin VB.TextBox tRed

Height = 375

Left = 4200

TabIndex = 3

Top = 720

Width = 735

End

Begin VB.TextBox rgbAll

Height = 375

Left = 4200

TabIndex = 2

Top = 240

Width = 735

End

Begin VB.CommandButton Command2

Caption = "设置"

Height = 495

Left = 240

TabIndex = 1

Top = 1920

Width = 1215

End

Begin VB.CommandButton Command1

Caption = "恢复"

Height = 495

Left = 240

TabIndex = 0

Top = 1320

Width = 1215

End

Begin VB.Label Label1

Caption = "蓝"

BeginProperty Font

Name = "宋体"

Size = 10.5

Charset = 134

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

ForeColor = H00FF0000

Height = 375

Index = 3

Left = 3480

TabIndex = 13

Top = 1680

Width = 375

End

Begin VB.Label Label1

Caption = "绿"

BeginProperty Font

Name = "宋体"

Size = 10.5

Charset = 134

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

ForeColor = H0000C000

Height = 375

Index = 2

Left = 3480

TabIndex = 12

Top = 1200

Width = 375

End

Begin VB.Label Label1

Caption = "红"

BeginProperty Font

Name = "宋体"

Size = 10.5

Charset = 134

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

ForeColor = H000000FF

Height = 375

Index = 1

Left = 3480

TabIndex = 11

Top = 720

Width = 375

End

Begin VB.Label Label1

Caption = "全部调整"

BeginProperty Font

Name = "宋体"

Size = 10.5

Charset = 134

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

Height = 375

Index = 0

Left = 3000

TabIndex = 10

Top = 240

Width = 975

End

End

Attribute VB_Name = "Form1"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

Option Explicit

'Gamma Type

Private Type Gamma

Red As Integer

Green As Integer

Blue As Integer

End Type

Private GammaDay As Gamma 'Day Gamma

Private GammaNight As Gamma 'Night Gamma

'Gamma APIs

Private Ramp1(0 To 255, 0 To 2) As Integer

Private Ramp2(0 To 255, 0 To 2) As Integer

Private Declare Function GetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, lpv As Any) As Long

Private Declare Function SetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, lpv As Any) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetDesktopWindow Lib "user32" () As Long

'Set Gamma

Public Sub SetGamma(ByVal intRed As Integer, ByVal intGreen As Integer, ByVal intBlue As Integer)

Dim i As Integer

Dim ScrDC As Long

'Get Screen's DC

ScrDC = GetDC(GetDesktopWindow)

intRed = intRed / 2

intGreen = intGreen / 2

intBlue = intBlue / 2

'Change Ramp

For i = 0 To 255

If intRed 0 Then Ramp2(i, 0) = ConvToSignedValue(ConvToUnSignedValue(Ramp1(i, 0)) * (100 - Abs(intRed)) / 100)

If intRed = 0 Then Ramp2(i, 0) = Ramp1(i, 0)

If intRed 0 Then Ramp2(i, 0) = ConvToSignedValue(65535 - ((65535 - ConvToUnSignedValue(Ramp1(i, 0))) * (100 - intRed) / 100))

If intGreen 0 Then Ramp2(i, 1) = ConvToSignedValue(ConvToUnSignedValue(Ramp1(i, 1)) * (100 - Abs(intGreen)) / 100)

If intGreen = 0 Then Ramp2(i, 1) = Ramp1(i, 1)

If intGreen 0 Then Ramp2(i, 1) = ConvToSignedValue(65535 - ((65535 - ConvToUnSignedValue(Ramp1(i, 1))) * (100 - intGreen) / 100))

If intBlue 0 Then Ramp2(i, 2) = ConvToSignedValue(ConvToUnSignedValue(Ramp1(i, 2)) * (100 - Abs(intBlue)) / 100)

If intBlue = 0 Then Ramp2(i, 2) = Ramp1(i, 2)

If intBlue 0 Then Ramp2(i, 2) = ConvToSignedValue(65535 - ((65535 - ConvToUnSignedValue(Ramp1(i, 2))) * (100 - intBlue) / 100))

Next

'Set Gamma

SetDeviceGammaRamp ScrDC, Ramp2(0, 0)

End Sub

'Save Gamma

Public Sub SaveGamma()

Dim ScrDC As Long

'Get Screen's DC

ScrDC = GetDC(GetDesktopWindow)

'Reset it

GetDeviceGammaRamp ScrDC, Ramp1(0, 0)

End Sub

'RestoreGamma

Public Sub RestoreGamma()

Dim ScrDC As Long

'Get Screen's DC

ScrDC = GetDC(GetDesktopWindow)

'Reset it

SetDeviceGammaRamp ScrDC, Ramp1(0, 0)

End Sub

Private Function ConvToSignedValue(lngValue As Long) As Integer

'Cheezy method for converting to signed integer

If lngValue = 32767 Then

ConvToSignedValue = CInt(lngValue)

Exit Function

End If

ConvToSignedValue = CInt(lngValue - 65535)

End Function

Private Function ConvToUnSignedValue(intValue As Integer) As Long

'Cheezy method for converting to unsigned integer

If intValue = 0 Then

ConvToUnSignedValue = intValue

Exit Function

End If

ConvToUnSignedValue = intValue + 65535

End Function

Private Sub Command1_Click()

rgbAll.Text = 0

Command2_Click

'GammaDay.Red = 0

'GammaDay.Green = 0

'GammaDay.Blue = 0

'SetGamma GammaDay.Red, GammaDay.Green, GammaDay.Blue

End Sub

Private Sub Command2_Click()

GammaNight.Red = Val(tRed.Text)

GammaNight.Green = Val(tGreen.Text)

GammaNight.Blue = Val(tBlue.Text)

SetGamma GammaNight.Red, GammaNight.Green, GammaNight.Blue

End Sub

Private Sub Form_Load()

SaveGamma

rgbAll.Text = vAll.Value

tRed.Text = vr.Value

tGreen.Text = Vg.Value

tBlue.Text = Vb.Value

End Sub

Private Sub Form_Unload(Cancel As Integer)

RestoreGamma

End Sub

Private Sub rgbAll_Change()

tRed.Text = rgbAll.Text

tGreen.Text = rgbAll.Text

tBlue.Text = rgbAll.Text

End Sub

Private Sub vAll_Change()

rgbAll.Text = vAll.Value

End Sub

Private Sub vr_Change()

tRed.Text = vr.Value

End Sub

Private Sub vg_Change()

tGreen.Text = Vg.Value

End Sub

Private Sub vb_Change()

tBlue.Text = Vb.Value

End Sub

关于对比度增强vb代码和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/29869.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载