社区
图形处理/算法
帖子详情
如何区分彩图和彩色黑白图
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 通过判断图像的位深就能区分是二值图像,还是彩色图像啦。
c#彩色
图
像转换黑白
图
像(去色)
彩色
图
像转换为黑白
图
像时需要计算
图
像中每像素有效的亮度值,通过匹配像素 亮度值可以轻松转换为黑白
图
像。 计算像素有效的亮度值可以使用下面的公式: Y=0.3RED+0.59GREEN+0.11Blue 然后使用 Color.FromArgb(Y...
OpenCv黑白
图
像添加伪彩色
OpenCv给黑白
图
像添加伪彩色,给黑白添加自定义颜色。使用函数ApplyColorMap产生伪彩色
图
像,使用LUT函数添加自定义颜色。
彩色
图
像灰度化vc++代码
简单的彩色
图
像转化为灰度
图
像vc++实现代码,注释清晰,简单易懂
真彩位
图
转化成256彩色或黑白位
图
的代码
可将真彩位
图
转化成256彩色或黑白位
图
,处理效果还可以~
Delphi
图
片去色 彩色变成黑白的例子.rar
Delphi
图
片去色 彩色变成灰度
图
的例子,应用了矩阵维数,去色功能使用了两种方法,各不相同但效果相差不大,觉得转换成黑白
图
像的效果不是太好,有些不清淅,而且例子只针对BMP文件,局限性有点大,只供参考学习。
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章