Qt生成灰度图(转载)

本文详细介绍了在Qt中如何将彩色图像转换为灰度图的过程,包括灰度图的概念、色彩表、颜色索引模式和灰度索引图。通过浮点算法、整数方法、移位方法等多种方式计算灰度值,并提供了优化效率的技巧,如使用指针移动和移位操作代替乘除法。最后给出了Qt代码示例,展示了如何创建灰度索引图并保存为BMP文件。
摘要由CSDN通过智能技术生成
 

 项目中用到大量基础图像处理知识,其中灰度图的生成是很重要的一环。

    先补充一些基础知识:

----------------------------------------------------------------------------------------------------------------------------

一:灰度图

       灰度图就是黑白图,整幅图片只有不同程度的黑白两色。灰度也可认为是亮度,简单的说就是色彩的深浅程度 !

 

       1:如果我们用八位来存储灰度图。则共有256种组合。那相当于:我们把从:纯黑 到 纯白 之间区分成了256种灰度。从而对应256种灰度值! 而如果用一个数字来表示的话:则0-255每个数字对应一种灰度!

 

      2:灰度就是没有色彩,它的RGB色彩分量全部相等。 比如 rgb(20,20,20)。  既然这样:我们完全可以用rgb中的某一个分量的值 来代替这个实际的灰度值! 比如上边这个例子:我们完全可以用20来代替这个灰度! 这是一个一一映射关系!

--------------------------------------------------------------------------------------------------------------

二:色彩表

 

 

    色彩表就是表示当前所有颜色的一张表。 而我们知道任何一种颜色都可以用rgb值来表示。如此我们完全可以设计一张表,里边每个元素都是一个rgb值,从而将所有的颜色都用rgb值表示出来!

--------------------------------------------------------------------------------------------------------------

三:颜色索引模式

 

 

    在一张图片的每个像素中可以直接存放其rgb值!当然:我们也可以存放一个索引值,通过这个索引值去其对应的颜色表中去查找对应的颜色的rgb值来进行绘制。这种像素中存放索引值而不是实际rgb值的模式在Qt中有:QImage::Format_Indexed8,亦即:用8位来存放一个索引值。

--------------------------------------------------------------------------------------------------------------

四:灰度索引图:

 

    对于8阶灰度图而言:由于其一共有256种灰度,所以我们可以设计一个颜色表:里边存放256个rgb值!每个rgb值的三个分量都是相等的。这样:这张表就可以用来表示所有的灰度!

    灰度索引图中存放的是各个整数索引值,这些图片数据本身是无法显示的,因为其没有实际的rgb值。当实际构图时:是用该索引值在上边创建的颜色表中进行查找,找到对应的灰度rgb值,而后才能进行实际的绘图等操作。

    有了上两步基础,问题的关键就在于:这个灰度索引值是如何获得的?

 

==================================================================================================&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值