如何区分彩图和彩色黑白图

Li_Carey 2012-10-10 04:04:54
求各位大牛帮忙,小弟在程序中需要对彩图和黑白图做不同处理,但是黑白图处理效果比较好。现在遇到一个问题,在彩色图片中会有很多彩色的黑白图(看起来是黑白图,实际上是彩色图),我想把这种图片作为黑白图处理,但是程序中没法区分真正的彩色图和这种彩色黑白图,苦闷。。。。。
求各位高手指点......
...全文
720 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Li_Carey 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
你所说的黑白图是不是只有(0,0,0)和(255,255,255)两种颜色的图啊?
如果是的话,彩色的只有黑白的图里面只有诸如(n,n,n)这样的像素点,它们代表不同深浅的灰色。如果(x,y,z)三个分量不相等,说明这个像素是彩色的,那这个图就是彩色的。
如果只有(n,n,n)这样的像素点不就说明这个图是黑白的了么?为什么不能区分呢?

引用 6 楼 的回复:

引用 4 楼 的回复:……
[/Quote]恩,我说的这种图它确实是彩色图,但主要显示的颜色是黑色和白色,所以我们看起来像是黑白图,举个例子吧,比如彩色的PDF文件中,有插图页,也有纯文字页,插图页颜色比较杂,而文字页中文字是黑色的,背景是白色的。我就是需要将这种PDF文字页和插图页区分开然后做不同处理......
madbunny 2012-10-11
  • 打赏
  • 举报
回复
你所说的黑白图是不是只有(0,0,0)和(255,255,255)两种颜色的图啊?
如果是的话,彩色的只有黑白的图里面只有诸如(n,n,n)这样的像素点,它们代表不同深浅的灰色。如果(x,y,z)三个分量不相等,说明这个像素是彩色的,那这个图就是彩色的。
如果只有(n,n,n)这样的像素点不就说明这个图是黑白的了么?为什么不能区分呢?
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:
楼主应该说的是灰度图吧?
灰色(也就是不同深浅的黑色白色,也就是所谓的黑白图)两色的RGB三个分量是相等的啊,如果说每个像素点的RGB三个分量都两两相等,那就说明这个图是黑白的啦。
我不懂VC,但是颜色大概是这么个原理,楼主可以自己试试看?
恩,你说的这种方法我试了,这种图看起来是黑白两色,可是其实是彩色图,黑白图RGB三个分量要么全为0,要么全为255,这么判……
[/Quote]
Li_Carey 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
看起来是黑白两色,你观察一下直方图,应该有两个峰值(而且非0值应该都集中在峰值附近),两个峰值之间的距离应该比较远。
[/Quote]我观察了下直方图,发现直方图(nHis)的第一个元素nHis[0]和最后一个元素nHis[255]值都比较大,中间的nHis[64],nHis[128],nHis[192]值可能不为零,但是都比较小,其余值全是0,有了这个规律问题就可以解决了,多谢大牛....
laoma_hbu 2012-10-10
  • 打赏
  • 举报
回复
看起来是黑白两色,你观察一下直方图,应该有两个峰值(而且非0值应该都集中在峰值附近),两个峰值之间的距离应该比较远。
Li_Carey 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
楼主应该说的是灰度图吧?
灰色(也就是不同深浅的黑色白色,也就是所谓的黑白图)两色的RGB三个分量是相等的啊,如果说每个像素点的RGB三个分量都两两相等,那就说明这个图是黑白的啦。
我不懂VC,但是颜色大概是这么个原理,楼主可以自己试试看?
[/Quote]恩,你说的这种方法我试了,这种图看起来是黑白两色,可是其实是彩色图,黑白图RGB三个分量要么全为0,要么全为255,这么判断没法和真正的彩色图区分开来。
Li_Carey 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
有点绕,可以扫描一遍图像生成各颜色通道的直方图,统计一下直方图分布就可以了。只有黑色两种颜色的图像,其直方图肯定只有两列数据,其它值为0;而正常的彩色图像,各通道的直方图分布要均匀的多了。
[/Quote]谢谢,我试试。。。。。
madbunny 2012-10-10
  • 打赏
  • 举报
回复
楼主应该说的是灰度图吧?
灰色(也就是不同深浅的黑色白色,也就是所谓的黑白图)两色的RGB三个分量是相等的啊,如果说每个像素点的RGB三个分量都两两相等,那就说明这个图是黑白的啦。
我不懂VC,但是颜色大概是这么个原理,楼主可以自己试试看?
laoma_hbu 2012-10-10
  • 打赏
  • 举报
回复
有点绕,可以扫描一遍图像生成各颜色通道的直方图,统计一下直方图分布就可以了。只有黑色两种颜色的图像,其直方图肯定只有两列数据,其它值为0;而正常的彩色图像,各通道的直方图分布要均匀的多了。
Li_Carey 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
不是有位深的概念嘛,bmBitsPixel 通过判断图像的位深就能区分是二值图像,还是彩色图像啦。
[/Quote]不是,我说的这种彩色的黑白图是看起来显示的只有黑白两种颜色,其实是彩色图,我是想知道这种图和那种显示的不止黑白两种颜色的彩色图有什么区别,怎么区分....
laoma_hbu 2012-10-10
  • 打赏
  • 举报
回复
不是有位深的概念嘛,bmBitsPixel 通过判断图像的位深就能区分是二值图像,还是彩色图像啦。

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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