c++平均值法灰度化图像_C++ 彩色图转灰度图

c++平均值法灰度化图像_C++ 彩色图转灰度图_第1张图片

彩色图转灰度图公式为Gray = 0.299*R+0.587*G+0.114*B。如下例子中我们读入一幅bmp彩色图像,然后利用该公式转化为灰度图,图像的读入参考之前的文章。

c++平均值法灰度化图像_C++ 彩色图转灰度图_第2张图片

图像数据结构定义,该定义放在了单独头文件中,读者可根据自己的情况放置合适的位置:

/**
* @brief 简单概述
* @brief 图像格式
*/
enum ImageFormat
{
    
	IMAGE_GREY = 0x0000,	// 灰度图像
	IMAGE_RGB,				// 彩色RGB图像
	IMAGE_BGR,				// 彩色BGR图像
	IMAGE_RGBA,				// 彩色RGBA图像
	IMAGE_BGRA				// 彩色BGRA图像
};

/**
* @brief 简单概述
* @brief 图像数据结构
*/
typedef struct
{
    
	ImageFormat format;
	int width;
	int height;
	unsigned char* pBuffer = NULL;
}Image;

算法头文件 algorithm.h:

/*****************************************************************************
*  C++ 图像读取
*  Copyright (C) 2020 [email protected]
*
*  @file
*  @brief    对文件的简单概述
*  Details.
*
*  @author   Leeme
*  @email    [email protected]
*  @version  1.0.0.1(版本)
*  @date     2020.11.21
*  @license  GNU General Public License (GPL)
*
*----------------------------------------------------------------------------
*  Remark         : Description
*----------------------------------------------------------------------------
*  Change History :
*       |  |        | 
*----------------------------------------------------------------------------
*  2020/10/30 | 1.0.0.1   | Leeme          | Create file
*----------------------------------------------------------------------------
*
**************************************

你可能感兴趣的:(c++平均值法灰度化图像)