IO进程线程Day2

用fwrite 和 fseek功能,将一张bmp格式的图片更改成 德国国旗

#include <myhead.h>
int main(int argc, const char *argv[])
{
    FILE *fp=fopen("./ceshi.bmp","r+");
    if(NULL==fp){
        perror("open error");
        return -1;
    }
    //读取图片大小
    fseek(fp,2,SEEK_SET);
    int bmp_size=0;
    fread(&bmp_size,4,1,fp);
    printf("图片大小:%d\n",bmp_size);
    //读取图片宽度
    fseek(fp,18,SEEK_SET);
    int bmp_w;
    fread(&bmp_w,4,1,fp);
    printf("图片宽度:%d\n",bmp_w);

    //读取图片高度
    int bmp_h;
    fread(&bmp_h,4,1,fp);
    printf("图片宽度:%d\n",bmp_h);

    //定义一个像素点的大小
    unsigned char bgr1[3]={0,255,255};
    unsigned char bgr2[3]={0,0,255};
    unsigned char bgr3[3]={0,0,0};
    fseek(fp,54,SEEK_SET);
    int num=bmp_w*bmp_h;
    int count=0;
    for(int i=0;i<bmp_w;i++){
        for(int j=0;j<bmp_h;j++){
            count++;
            if(count<=num/3){
                fwrite(bgr1,3,1,fp);              
            }
            else if(count>num/3&&count<=num*2/3){
                fwrite(bgr2,3,1,fp);
            }
            else if(count>num*2/3&&count<=num){
                fwrite(bgr3,3,1,fp);
            }
        }
    }
    fclose(fp);
    return 0;
}

Retinex算法是图像处理领域中种模拟人眼视觉特性的经典算法,其名称来源于“Retina”(视网膜)和“NeXt”(下步),旨在通过模拟人眼对光线的处理过程,增强图像的局部对比度,改善图像质量,使色彩更加鲜明,同时降低光照变化的影响。该理论由Gibson在1950年提出,基于两个核心假设:是图像的颜色信息主要体现在局部亮度差异而非全局亮度;二是人眼对亮度对比更敏感,而非绝对亮度。 Retinex算法的核心思想是通过增强图像的局部对比度来改善视觉效果。它通过计算图像的对数变换并进行局部平均,从而突出图像的细节和色彩,同时减少光照不均匀带来的影响。 MSR是Retinex算法的种改进版本,引入了多尺度处理的概念。它通过以下步骤实现: 图像预处理:对原始图像进行归化或滤波,以减少噪声和光照不均匀的影响。 多尺度处理:使用不同大小的高斯核生成多个尺度的图像,每个尺度对应不同范围的特征。 Retinex处理:在每个尺度上应用Retinex算法,通过计算对数变换和局部平均来增强图像细节。 融合:将不同尺度的处理结果通过权重融合,生成最终的增强图像。MSR能够更好地捕捉不同大小的细节,并降低噪声的影响。 MSSR是MSR的变种,它不仅在尺度上进行处理,还考虑了空间域上相邻像素之间的关系。这种处理方式有助于保留图像的边缘信息,同时提高图像的平滑性,进步提升图像质量。 在提供的压缩包中,包含三个MATLAB文件:SSR.m、MSRCR.m和MSR.m。这些文件分别实现了不同版本的Retinex算法: SSR.m:实现单尺度的Retinex算法,仅在固定尺度上处理图像。 MSRCR.m:实现改进的减法Retinex算法,通过颜色恢复步骤纠正光照变化对颜色的影响。 MSR.m:实现基础的多尺度Retinex算法,涉及多尺度图像处理和Retinex操作。 MATLAB是种广泛应用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值