万丈高楼平地起

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. luogu 2051 [AHOI2009]中国象棋

    luogu 2051 [AHOI2009]中国象棋 真是一道令人愉♂悦丧心并框的好题... 首先"没有一个炮可以攻击到另一个炮"有个充分条件就是没有三个炮在同一行或同一列.证明:显 ...

  2. ython进阶06 循环对象

    这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标 ...

  3. 人脸检测及识别python实现系列(1)——配置、获取实时视频流

    人脸检测及识别python实现系列(1)——配置.获取实时视频流 1. 前言 今天用多半天的时间把QQ空间里的几篇年前的旧文搬到了这里,算是完成了博客搬家.QQ空间里还剩下一些记录自己数学学习路线的学 ...

  4. Java基础知识:Java实现Map集合二级联动4

    comboBox.setModel(new DefaultComboBoxModel(getProvince())); // 添加省份信息 final JLabel label = new JLabe ...

  5. Apriori 获取关联规则实现

    前言 自己的一个Apriori 获取关联规则的python实现.具体原理不讲,代码添加了说明,还是很好理解的. 数据预处理 #最小置信度 min_conf = 0.5 #最小支持度 min_sup = ...

  6. Method 'ExecuteAsync' in type 'System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy' does not have an implementation

    一.错误信息 Entity Framework 6.0数据迁移:Add-Migration XXXX 命令发生错误 System.Reflection.TargetInvocationExceptio ...

  7. linux 性能分析命令及其解释

    很多时候,我们需要对linux上运行的环境大体有一个了解,那么久需要大体知道当前系统的相关资源的使用情况,那么可以用一些linux提供的丰富的命令来查看 性能分析 vmstat 虚拟内存统计 用法 U ...

  8. java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

  9. 几个好用的php函数

    几个好用的php函数 1.PHP加密解密 PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密. function enc ...

  10. Numpy and Pandas

    安装 视频链接:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/ pip install numpy pip instal ...