C语言BMP图像的读取、存入、水平镜像、竖直镜像、马赛克模糊处理、灰度二值化处理

功能介绍

预计结果
last operation(上一次操作):
Current Bitmap File(当前打开的BMP文件):
1、对BMP文件的读取
2、输出该BMP文件的信息
3、保存当前BMP到指定文件名
4、显示该BMP图像
5、将当前BMP图像水平镜像
6、将当前BMP图像垂直镜像
7、将当前BMP图像马赛克模糊处理
8、将当前BMP图像二值化处理
9、退出程序

这里是已经做好的程序:文件下载 https://download.csdn.net/download/qq_43644205/11286447

分步讲解

1、BMP文件读取

这里按照bmp的文件格式,依次将bmp文件的文件头、位图信息头、图像数据以及颜色信息从文件里读出来
在这里插入图片描述

2、输出BMP图像的信息

如图所示,将第一步读到的BMP文件信息从程序中输出出来
在这里插入图片描述
在这里插入图片描述

3、保存当前BMP到指定文件名

vs没法长截图真的心累 ,同理,想要输出一个新的BMP图像,就相当于是要自己做一个BMP文件出来,只需要按照BMP文件的格式,依次准备好文件头、位图信息头、图像数据和颜色信息,并将自己想要保存的数据存进去即可。
在这里插入图片描述
在这里插入图片描述

4、显示该BMP图像

在这里插入图片描述

5、将当前BMP图像水平镜像

像坐标轴一样,将BMP图像每个点都标上一个位置(x,y),这样保持y轴不变,交换x轴上的数据,就完成了BMP图像的水平镜像
在这里插入图片描述

6、将当前BMP图像垂直镜像

垂直镜像和水平镜像原理相同,保持x轴数据不变,交换y轴,就能完成垂直镜像
在这里插入图片描述

7、将当前BMP图像马赛克模糊处理

马赛克的基本原理用一张图来解释,就是
在这里插入图片描述
将一幅图分为若干个像素数据,按3X3(或者5X5或者按自己的意愿)分为若干组,取其中的中位数(也有取最小值或者最大值或者平均数的,实现的效果基本相同),重新对这九个小块赋值,这样就实现了图片的模糊处理
在这里插入图片描述

8、将当前BMP图像二值化处理

灰度二值化处理是模式识别、机器学习等,在人脸识别等方面对图片处理的常见操作,可以减少图片的不稳定性,便于之后计算机对图片的处理,目前灰度二值化处理几乎是每种图片处理都必不可少的操作。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

项目完成

到这里,BMP图像处理的主要操作就完成了,后面只需要再完善完善一些外部函数,补充好全局变量,各种参数设置,设计main函数的格式即可

简单的程序演示

这是原图:test.bmp

在这里插入图片描述

对test.bmp水平镜像并储存

在这里插入图片描述

这是水平镜像图test2.bmp

在这里插入图片描述

再将test2.bmp读出来对其马赛克处理,再储存为test3.bmp

在这里插入图片描述

3X3的模糊处理比较小,仔细看还是能看出来不同的,需要的话可以自己改成5X5或者10X10,按自己意愿处理

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值