获得和改变bmp图像的亮度对比度

这个程序演示了如何读取BMP文件并改变其亮度和对比度。通过初始化BITMAP结构,计算直方图,获取亮度和对比度,然后使用查找表(LUT)进行图像处理。最后,保存修改后的图像。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <WINDOWS.H>
#include <IOSTREAM.H>
#include <MATH.H>

bool InitBITMAP(BITMAP* bmp);
void InitHist(unsigned char* pImg,int imageSize);
int GetBrightNess(unsigned long* LUT,int imageSize);
double GetContrast(unsigned long* LUT,int imageSize, int brightness);
void ChangeU_AND_D(unsigned char* pImg,int imageSize);
void saveBmp(BITMAP* bmp);

char* fileName="d:\\new.bmp";
char* saveFileName="D:\\myLena.bmp";
unsigned long HIST[256];
unsigned long LUT[256];


void saveBmp(BITMAP* bmp)
{

	FILE* fp=fopen(fileName,"rb");
	BITMAPFILEHEADER bh;
	fread(&bh,sizeof(BITMAPFILEHEADER),1,fp);
	unsigned char* imageHead=new unsigned char[bh.bfOffBits];
	fseek(fp,0,SEEK_SET);
	fread(imageHead,1,bh.bfOffBits,fp);
	fclose(fp);

	fp=fopen(saveFileName,"wb");
	if(!fp)
	{
		printf("error in saveBmp!");
		return;
	}
	fwrite(imageHead,bh.bfOffBits,1,fp);
	fwrite(bmp-
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值