计算黑白图片的黑白像素比值

wuxiaobo37 2014-11-12 02:27:04
现在我有一个GIF的动态图片,是一个像温度计一样的东西,可以理解为里面的温度在不停波动,想像一下大概像图片里显示的这样,红色部份在不停的上升或者下降,现在我想计算红色部份所占的比例,
大概思路是每隔一秒截一图,然后把截下来的图黑白化,再计算黑白像素的比例,不知道这种思路是否可行?
还有,截图我倒是会了,
但是黑白化,和计算比例还不是很会,可否请教一下思路,或者给点参考代码?
...全文
588 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxiaobo37 2014-11-12
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
'窗体上加上 PictureBox 和 CommandButton'
Option Explicit

Private Sub Command1_Click()
    Dim pic As IPictureDisp
    Dim y As Long
    Dim picHeight As Long
    
    Set pic = LoadPicture("D:\temp\1.bmp")'截图'
    picHeight = ScaleY(pic.Height, vbHimetric, vbPixels)
    
    Picture1.ScaleMode = vbPixels
    Picture1.PaintPicture pic, 0, 0
    For y = 0 To picHeight - 1
        If Picture1.Point(0, y) = vbRed Then Exit For
    Next
    MsgBox FormatPercent((picHeight - y) / picHeight)
End Sub
用你的截图结果是 63.82%
很好用,谢谢你了,大师!!
Tiger_Zhao 2014-11-12
  • 打赏
  • 举报
回复
'窗体上加上 PictureBox 和 CommandButton'
Option Explicit

Private Sub Command1_Click()
Dim pic As IPictureDisp
Dim y As Long
Dim picHeight As Long

Set pic = LoadPicture("D:\temp\1.bmp")'截图'
picHeight = ScaleY(pic.Height, vbHimetric, vbPixels)

Picture1.ScaleMode = vbPixels
Picture1.PaintPicture pic, 0, 0
For y = 0 To picHeight - 1
If Picture1.Point(0, y) = vbRed Then Exit For
Next
MsgBox FormatPercent((picHeight - y) / picHeight)
End Sub

用你的截图结果是 63.82%
wuxiaobo37 2014-11-12
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
只有双色,要不要黑白化都无所谓。 最简单的方式只要顺着一条竖线逐点扫描下去,取得第一个红点的y值,除以图片高度就是比率。
可否给点代码参考?
Tiger_Zhao 2014-11-12
  • 打赏
  • 举报
回复
只有双色,要不要黑白化都无所谓。
最简单的方式只要顺着一条竖线逐点扫描下去,取得第一个红点的y值,除以图片高度就是比率。

7,757

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧