怎样判断一幅图像是全黑的或全蓝的?小弟先谢谢了!

mywyn 2003-10-15 06:56:43
图像属性:576X288 16Bit/24Bit BMP

1.判断是不是全黑或暗到肉眼不能识别
2.判断图像是不是纯蓝,一般摄像头没有信号就会得到这种颜色。
3.假如我转换成JPG或JIF能不能从图像文件的大小判断以上两种情况?
...全文
435 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdspower 2003-10-17
  • 打赏
  • 举报
回复
实时性???不管怎么样总要读入(写入)计算机呀,如果是你自己控制这个读入或者写入,你可以考虑两个结合起来,这样速度是十分快的。
ljranby 2003-10-16
  • 打赏
  • 举报
回复
zzwu(未名) 老兄,如果你是用Delphi的话,你的代码中最好不要用pixel[x,y]
这样比较慢,应该用scanline[x]会快很多的。
allendragon 2003-10-16
  • 打赏
  • 举报
回复
如果实时性要求很高,可行的方法是,在图象上随机采样,如果所有的采样点为(0,0,0)可以认为图象为黑,所有的点为(0,0,255)则图象为蓝,采样点越多,准确度越高,时间长,极限情况为检测所有点,采样点越少,准确度下降,实时性提高。采样点数你可以通过实验来确定一个合理的取值。
zzwu 2003-10-16
  • 打赏
  • 举报
回复
例如判别是否全黑:

预设图像是全黑;
for(y=0;y<ImageHeight;i++)
for(x=0;x<ImageWidth;i++)
{ if (pixel[x,y]>0) 图像不是全黑;退出;}


zzwu 2003-10-16
  • 打赏
  • 举报
回复
那唯一的办法就是检查BMP文件每一个像素的值了。但这其实也很快,而且比检查平均亮度还要快!
allendragon 2003-10-16
  • 打赏
  • 举报
回复
在你的图象中搜索最大像素值,当这个值小于你设定的阈值时,就认为图像暗到肉眼不能识别了。阈值的大小可以根据经验或实验得到。
xpfbi 2003-10-16
  • 打赏
  • 举报
回复
GetPixl()得到的RBG小到一定程度就可以了吧
mywyn 2003-10-16
  • 打赏
  • 举报
回复
谢谢各位兄弟的回答!!!
我的BMP图像应该是RGB模式。我的同事曾叫我检查平均亮度,如果小于一定的值则认为图像是
无效的。不过他也不知道算法。我的程序对时间精度要求很高,所以希望算法尽可能精简。
ljranby 2003-10-16
  • 打赏
  • 举报
回复
纯黑BGR组成(0,0,0)
纯蓝BGR组成(255,0,0)
位图中的RGB是倒的
mywyn 2003-10-16
  • 打赏
  • 举报
回复
谢谢各位,现在就剩最后一个问题了,怎样判断图像暗到肉眼不能识别。

小第图像知识极度匮乏,只能继续求救了。
zzwu 2003-10-16
  • 打赏
  • 举报
回复
ljranby(阿荣爱神网):
谢谢你的指正!我确实是用Delphi的,这里是为了使人好懂,采用了pixels[x,y].
zzwu 2003-10-15
  • 打赏
  • 举报
回复
重新看一遍,发现我上面的回复漏了字,应该是:
对于BMP文件,如果采用Index模式,可以检查调色板来确定像素一共有多少种颜色,无需检查每个像素的颜色。但如果采用RGB模式,则因为"没有"调色板,所以必须检查每个像素的颜色。


eastsun 2003-10-15
  • 打赏
  • 举报
回复


这个问题太简单了些啊。

好象转化成JPG文件不能判断第一种情况的。
zzwu 2003-10-15
  • 打赏
  • 举报
回复
对于BMP文件,如果采用Index模式,可以检查调色板来确定像素一共有多少种颜色,无需检查每个像素的颜色。但如果采用RGB模式,则因为调色板,所以必须检查每个像素的颜色。

Hackevin 2003-10-15
  • 打赏
  • 举报
回复
BMP可以读文件,因为是位图嘛,判一下每一位的值就可以了

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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