万丈高楼平地起

C语言大作业

一、学习笔记篇

1.学习MarkDown

MarkDown注重写作本身,而非花俏的界面

编辑器:vscode

插件:Markdown,Markdown Preview

2.bmp文件格式

BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,

可以分成两类:设备有向量相关位图(DDB)和设备无向量相关位图(DIB)。

1.进制表示

H 表示该数是十六进制,B 表示二进制;O 表示八进制。

2.BMP文件组成

文件头,信息头,调色版,数据文件
这些维基百科一下应该可以明白
只不过需要一些耐心。
值得注意的是BMP文件是16进制文件,你在读入的时候 需要进行二进制的转换

3.c语言读入bmp文件

在读入BMP文件之前,我希望你至少对于指针,结构体以及文件二进制输入输出有了解。
如果你对这个还不了解,那我建议你可以百度了解一下先或者翻一下你的大学教材,因为这才是基础。 如果你看了以上知识了,那么你心中大概就知道该怎么去完成这个作业了。
值得一提的是:
1.fread,fwirte,fopen,fclose是怎么使用的?
2.结构体的内存是这么分配的,它的初始地址是?
3.结构体所占内存是怎么计算的?为什么成员字节数会小于等于结构体字节?
4.怎么解决成员字节数会小于等于结构体字节(字节对齐)这个问题?
5.文件如何进行二进制输入输出? 解答:
1. 自行百度了解
2. 结构体你可以理解为一个数组,它的每个成员地址是和数组一样是连续的,
其实你会发现内存存储永远满足一个连续性,所以函数的内存也是连续的。
这样你就发现实际上读入的时候我直接将信息头和文件头写出一个个结构体
之后从结构体开始位置和BMP文件的对应位置开始,一一复制过去就可以了。
3. 成员字节数会小于等于结构体字节,是因为存在一个字节对齐问题,系统
处理的时候是连续4个字节处理的,因此不是4个的倍数就会补齐,假设一个
结构体成员是3字节的a,4字节的b,补全之后结构体的字节就变成了((3+1)+4)>7
4. 所以如果贸然赋值就会有数据对齐问题,这个时候就要利用#pragma pack()
具体使用方法还请百度
5. 被这个地方卡了一下午,务必注意二进制输入就一定要二进制输出不然后果就是
扭曲的人脸 小小建议:
在处理数据时候,可以下载Hex Editor Neo观察BMP文件数据 和自己的进行比对
看有没有问题

4.图像直方图均衡算法实现

处理完数据之后,就作业的均衡算法就是套公式了,所以建议把PPT仔细看看,有很多提示的

5.总结

写这个之前,先考虑要什么基础知识,先把基础知识巩固之后,再去完成这项作业
不要一上来就想着马上写完。

6.推荐参考资料

最佳参考资料:老师提供的PPT
BMP文件格式:https://www.cnblogs.com/wainiwann/p/7086844.html
图像直方图均衡算法: 老师提供的PPT(最佳)
https://mp.weixin.qq.com/s/Lx6nGILofQN9e5KuWgh7mw(进阶了解)
C语言 fread()与fwrite()函数说明与示例
https://www.cnblogs.com/xudong-bupt/p/3478297.html

BMP图像直方图均衡算法(C语言大作业)的更多相关文章

  1. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  2. 【C】C语言大作业——学生学籍管理系统

    文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...

  3. C语言大作业---学生信息管理系统

    xxxx信息管理系统 简介 因为大作业规定的踩分项就那么多,为了不浪费时间 + 得分,就写成这样.现在看看,命名不规范,书写风格糟糕,全塞在一个源代码中······ 不过,应付大作业是没问题的 实验报 ...

  4. #004 C语言大作业学生管理系统试着做

    链表不会用 文件不会使 在这种情况下就边写边做 希望这个月能做完这个作业 #include<stdio.h> #include<stdlib.h> #include<st ...

  5. #007 C语言大作业学生管理系统第四天

    第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...

  6. BMP头文件格式以及C语言读取头文件【转】

    BMP头文件格式以及C语言读取头文件[转] (2011-12-24 22:59:17) 转载▼ 标签: 杂谈 分类: 各个领域的知识 BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文 ...

  7. 【转】BMP图像文件格式

    5.1  BMP图像文件格式 BMP图像文件格式是游戏中常用的图像资源文件格式,BMP图像文件起源早,程序员对BMP都比较熟悉,再加上BMP格式简单,读取和写入非常容易实现,所以无论Windows的还 ...

  8. c++小学期大作业攻略(一)环境配置

    UPDATE at 2019/07/20 20:21 更新了Qt连接mysql的方法,但是是自己仿照连VS的方法摸索出来的,简单测试了一下能work但是不保证后期不会出问题.如果你在尝试过程中出现了任 ...

  9. 模式识别课程大作业 Shopee 商品图像检索

    大作业项目简介 在如今的信息科技时代, 带有拍照功能的移动设备如手机.相机等得到了极大的普及和流行, 各种各样的图片和视频可以随时随地获得, 并借助互联网快速传播, 这种趋势使得网络上的数字图片和视频 ...

随机推荐

  1. Jlink v8仿真器在64位系统上刷固件

    1. 安装软件sam-ba_2.16.exe.本次主要是Jlink v8在64位系统下面的刷固件方法. 2. J-link通过USB连接至电脑,短接PCB上标号为ERASE的焊盘5秒,断开ERASE两 ...

  2. 【Unity3d】ScriptableObject的简单用法

      ScriptableObject非常适合小数量的游戏数值. 使用ScriptableObject的时候需要注意,生成ScriptableObject数据文件需要自己写Editor代码实现. 大概的 ...

  3. Spring学习(八)-----Spring注入值到集合类型的例子

    下面例子向您展示Spring如何注入值到集合类型(List, Set, Map, and Properties). 支持4个主要的集合类型: List – <list/> Set – &l ...

  4. loadrunner12安装教程

    全套五个文件: 独立安装包,插件包,LR安装包,语言包,版本说明书 loadrunner 12安装教程 1.首先下载Loadrunner12安装包.下载下来将会有四个安装包. HP_LoadRunne ...

  5. PHP学习和使用总结

    起因 学习和使用PHP也有不少年头了,而自己也在学习和使用其他许多语言.我想通过这个总结来给自己一个交代.另一方面也分享一下开发经验,如何用PHP开发和管理大型的项目. 闲聊 许多人说自己1天学会PH ...

  6. Python Pygame (2) 事件

    程序在运行期间会产生许许多多的事件,事件随时可能发生(如移动鼠标,点击鼠标,敲击键盘按键),Pygame的做法是将所有的事件都放到事件队列里,通过for循环语句迭代取出每一条事件,然后处理关注的事件即 ...

  7. 2017软工第十周个人PSP

    11.17--11.23本周例行报告 1.PSP(personal software process )个人软件过程. C(类别) C(内容) ST(开始时间) ET(结束时间) INT(间隔时间) ...

  8. python __call__ 函数

    __call__ Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的. 换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符. ...

  9. 福大软工1816:Beta总结

    第三视角Beta答辩总结 博客链接以及团队信息 组长博客链接 成员信息(按拼音排序) 姓名 学号 备注 张扬 031602345 组长 陈加伟 031602204 郭俊彦 031602213 洪泽波 ...

  10. Nginx 配置站点

    1-进入 配置文件夹   cd /etc/nginx/cof.d   2-创建一个一站点名称命名的配置文件   vim kestrel-syslyracom.conf   3-在.conf 文件中输入 ...