万丈高楼平地起

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. 自己用C语言写RL78 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 之前用C实现过多款PI ...

  2. 洛谷1552 [APIO2012]派遣

    洛谷1552 [APIO2012]派遣 原题链接 题解 luogu上被刷到了省选/NOI- ...不至于吧 这题似乎有很多办法乱搞? 对于一个点,如果他当管理者,那选的肯定是他子树中薪水最少的k个,而 ...

  3. 前端 layui

    如果想实现类似 alert这种效果又不想阻塞html运行的话,就是用layer吧! http://www.layui.com/

  4. Python中print函数中中逗号和加号的区别

    strip()方法,去除字符串开头或者结尾的空格 s = " a b c " new_s = s.strip() print("-------->%s<--- ...

  5. Migrating to WebSphere 9

    Migrating to WebSphere 9 Make a migration plan Requirements Migrate WebSphere profiles into the new ...

  6. SICP读书笔记 1.2

    SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...

  7. java使用jacob将office文档转换为PDF格式

    jacob 包下载地址: http://sourceforge.net/projects/jacob-project/ 下载后,将jacob 与 jacob-1.19-x64.dll放到安装jdk目录 ...

  8. ES数据备份到HDFS

    1.准备好HDFS(这里我是本机测试) 2.es 安装repository-hdfs插件 (如es为多节点需在每个节点都安装插件) elasticsearch-plugin install repos ...

  9. Qt应用程序重启

    重启应用程序是一种常见的操作,在Qt中实现非常简单,需要用到QProcess类一个静态方法: // program, 要启动的程序名称 // arguments, 启动参数 bool startDet ...

  10. 软工 · BETA 版冲刺前准备(团队)

    软工 · BETA 版冲刺前准备(团队) 过去存在的问题 组员之间缺乏沟通,前后端缺乏沟通协作 组员积极性不高 基础知识不够扎实 手动整合代码效率过低 我们已经做了哪些调整/改进 通过会议加强组员之间 ...