【发布时间】:2012-07-28 07:43:23
【问题描述】:
我正在使用此代码来计算图像的平均颜色,但这并没有按预期工作。结果不准确。 如何找到图像的平均颜色?
Private Sub btnAvg_Click() Handles btnAvg.Click
Dim x, y As Integer
bmp = New Bitmap(picBox.Tag.ToString)
For y = picBox.Top To picBox.Bottom
For x = picBox.Left To picBox.Right
With bmp.GetPixel(x, y)
totalR = totalR + .R : totalG = totalG + .G : totalB = totalB + .B
End With
Next x
Next y
avgR = totalR / ((picBox.Bottom - picBox.Top) * (picBox.Right - picBox.Left))
avgG = totalG / ((picBox.Bottom - picBox.Top) * (picBox.Right - picBox.Left))
avgB = totalB / ((picBox.Bottom - picBox.Top) * (picBox.Right - picBox.Left))
End Sub
我正在寻找一个准确率超过 80% 的高速结果。这不是一个重复的问题,因为其他问题仅涉及 C#
【问题讨论】:
-
This is not a duplicate question as other questions deals with C# only- 我真的不会说这原谅你。 -
GetPixel非常慢。锁定位图并读取返回的字节数组。 msdn.microsoft.com/en-us/library/5ey6h79d.aspx -
@asawyer 我也可以克服缩略图的问题:P
-
@DarinDimitrov 是的,你是对的 :D 但我也尝试过代码转换器!
-
您发布的代码有什么问题?是太慢了,还是结果不准确?您的具体问题不清楚。
标签: vb.net vb.net-2010