基于C++语言的数字图像的基本操作

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:TIMLEE123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]介绍了使用C++对BMP图像进行文件信息读取和文件数据读取的相关概念和方法。根据BMP格式图像的格式类型和存储原理,介绍用C++程序语言对BMP格式图像进行读取和写入方法。
  [关键词]数字图像;位图图像 C++;BMP图像格式
  中图分类号:G291 文献标识码:A 文章编号:1009-914X(2015)45-0270-01
  位图图像的数据格式分为四个部分:文件头、信息头、颜色表和位图数据。我们平时看到的位图图像在文件内部都是以数据的形式进行存储的。图片的不同格式有不同的编码算法,位图文件是为经过压缩编码的原始的图片文件,位图文件的结构也更容易进行理解。位图文件更容易使用程序语言来进行操作。
  1 文件头部分
  位图的文件头包含存储了位图文件的基本信息。包括有文件类型(BMP格式)、以字节为单位的文件大小、保留字和数据的起始位置(记录位图数据开始存储的具体数据位置)这些信息。
  用C++语言可以定义像下面的类:
  class _BMPfheader
  {
  public:
  unsigned short int fileType;//图片文件的类型
  unsigned int fileSize;//图片文件的大小,单位是字节
  unsigned short int fileRea;//图片数据的保留字
  unsigned short int fileReb;//图片数据的保留字
  unsigned int dataStart;//文件中开始存储像素点数据的位置
  };
  2 信息头部分
  BMP格式文件的信息头包含了文件的其他基本属性信息。包括有信息头部分所占用的数据量(用字节数为单位表示)、图片的尺寸(包括宽度和高度,以像素为单位),存储每个像素点所需要的数据位数,图片的分辨率(包括水平分辨率和垂直分辨率)等信息,信息头部分还记录了文件是否经过压缩(BMP文件都是未经压缩的)。
  用C++语言可以定义像下面的类:
  class _BMPifheader
  {
  unsigned int bmpS; // BMP信息头部分的大小(以字节为单位)
  unsigned int bmpW; // BMP图片的宽度
  unsigned int bmpH; // BMP图片的高度
  unsigned short int bmpPL;// BMP图像设备级别
  unsigned short int bmpBC; //存储BMP图片每个数据点需要的数据位数
  unsigned int bmpCOM; // 记录BMP图片是否经过压缩了,这个数据一般是0,代码没经过压缩
  unsigned int bmpS1; // BMP图片数据的大小
  unsigned int bmpHBPM; //BMP图片的水平方向的分辨率
  unsigned int bmpVBPM; //BMP图片垂直方向的分辨率
  unsigned int bmpCU; // BMP图像使用了的颜色数量
  unsigned int bmpICU; // BMP图像使用了的重要颜色的数量
  };
  3 颜色表部分
  颜色表根据BMP位图的数据点的存储位数不同,存储了BMP图像所用到的所有颜色。如果是1位的图片,那么图片中就包含两种颜色即黑白,这时候图片是二值图;如果是4位的图片,那么图片中就包含了16种颜色;如果是8位的图片,图片中就包含了256中颜色;如果是24位的图片,图片中就包含了256×256×256种颜色,这时候的图片叫做真彩色图片,它包含的颜色数非常多但也并不是包含了所有的颜色,图片毕竟是图片,跟现实中的色彩还是不能比的。
  用C++语言可以定义如下的类:
  class _COLOURTABLE
  {
  unsigned char B; // blue的亮度
  unsigned char G; // greed的亮度
  unsigned char R; //red的亮度
  unsigned char R; // 这项一般为0,是保留字
  };
  4 数据部分
  BMP图片的数据存储的是BMP图片中每个点的颜色值。如果是24位的图片,那么这里的数据存储的就是图片的RGB值,否则的话,数据部分存储的仅仅是颜色表的索引值,通过索引值得到图片真实的RGB值。
  这一部分没有所谓的数据结构可言,就是在上述的结构下面根据数据的位数直接开始存储数据。
  5 注意问题
  在实际的编程过程中可能会出现各种个样的问题,需要注意的问题如下:
  1) 为避免出错可在文件头、信息头、颜色表的结构体或类定义的前面加上#pragma pack(1),表示按照1字节对齐,在这部分结束后再改回按照4字节对齐。
  2) BMP图像的尺寸使用长和宽两个变量存储的而不是一个
  6 编程测试
  编程部分UI界面设计如下
  测试结果如下:
其他文献
[摘 要]本文对未登录词中藏文地名的结构及其在文本中的出现进行了深入的研究,建立了一个地名库和特征词库,在此基础上提出藏文地名识别算法和地名歧义消歧方法。实验结果表明,该算法的召回率为75.2%,准确率为68.1,取得了较好的识别效果。  [关键词]藏文地名识别,未登录词,分词  中图分类号:TP391.43 文献标识码:A 文章编号:1009-914X(2015)45-0278-01
期刊
[摘 要]“凉都”品牌的内涵十分丰富,既要体现气候资源优势,又要体现旅游资源和文化资源特色。贵州省六盘水市钟山区在发展乡村旅游、民族风情旅游的同时,积极发展壮大民族特色文化产品,提升“凉都”品牌,推进新农村建设及全面建成小康社会的步伐。  [关键词]发展 壮大 民族特色产品  中图分类号:U284.2 文献标识码:A 文章编号:1009-914X(2015)45-0283-01  “十八大”报告提
期刊
[摘 要]目前,我国在对《刑法》中的著作权、商标权、专利权以及商业机密等几方面知识产权保护的相关制度还存在相对单一和短缺、所需保护的对象不清楚等问题,本文重点对刑法保护的理念进行了详细的解析,同时将刑法对知识产权保护中应注意的附属刑法和惩罚刑法等制度的应用进行了完善提高。  [关键词]知识产权;刑法保护;弊端  中图分类号:TM58 文献标识码:A 文章编号:1009-914X(2015)45-0
期刊
[摘 要]随着我国市场经济的建立和发展,企业在劳动用工实行劳动合同制的过程中出现了一些不规范的种种问题,引起很多劳动合同纠纷,企业尤其是人员数量比较大的国有企业更应该规范自己的劳动合同管理,为构建企业和谐劳动关系,消除社会一些不稳定隐患。  [关键词]国有企业 劳动合同 规范  中图分类号:U284.2 文献标识码:A 文章编号:1009-914X(2015)45-0281-01  引言  国有企
期刊
[摘 要]随着社会的进步与发展,计算机走进了广大人民的学习、生活、工作中,且逐渐得到了普及,没有电脑就无法学习,没有电脑就无法工作。而对于计算机的应用能力也成为了当代大学生就业找工作的基本条件之一,这样的社会大背景下,促使各个高校加强了对于大学生计算机应用教育的重视,开设了一定的计算机课程,甚至利用课余时间进行培训,来提高大学生的就业法码。但是在计算机应用教育中针对学生开展的德育教育工作也具有相当
期刊
[摘 要]在藏语当中语法单位最小的认为是音素,而语素没有给予一个特定的答案。没有分析也没有表明,大量认知研究发现语素存在独立的心理表征,语素意识以及分类在语法单位或教学上占重要地位。因此在论述“语素库”构造结构的基础上,探讨了设计现代藏文语法信息词典的理念及“语素库”在语法研究和语言信息处理研究中的应用。  [关键词]语素 语素库 藏语 信息词典  中图分类号:C829.2 文献标识码:A 文章编
期刊
中图分类号:U284.2 文献标识码:A 文章编号:1009-914X(2015)45-0285-01  随着互联网、手机等新兴媒体的迅猛发展,给传统媒体发展带来严峻的挑战,同时也为传统媒体跨越发展提供了千载难逢的机遇。秦皇岛市准确把握时机、顺势而为,推动传统媒体与新兴媒体融合发展,并取得了一定成效。  一、 秦皇岛市推动媒体融合的做法及成效  (一)用好新兴媒体,建构立体信息网  秦皇岛市在推动
期刊
[摘 要]本文阐明了国内外成熟民用飞机客舱门的设计特点,依据适航条款中的具体要求分别对其进行了安全性分析。舱门的安全性对比分析主要是根据适航条款对舱门的功能要求,从舱门的打开形式、闩系统、锁系统、指示系统、助力方式、增压预防措施、密封、操纵机构、初始运动方向、打开方式、开口大小等方面对其进行了对比分析,为民用客机舱门在安全性设计方面提供依据。  [关键词]舱门 安全性 对比分析  中图分类号:TM
期刊
[摘 要]语文教学关键在一个“活”字。 技工学校由于培养的学生技术指向较强,在人文教育包括语文课程的重视层面有所弱化,在审视当前技工院校语文课堂教学方法困境基础上,结合技工院校语文课堂“活起来”的教学原则,针对技工学校语文课堂教学的特点及学生的成长规律,试图从学生思维“活”,激发学生自信、调动学生积极性;课堂氛围“活”,跳出传统模式、提升师生互动性;教师语言“活”,展现语言魅力、激活课堂生动性;课
期刊
[摘 要]为了应对市场经济体制不断深化改革对电力市场所带来的不利影响,电力企业正在积极的转变经营理念,改进电力营销措施,提高电力优质服务水平,以期能够以良好的企业形象和优质的服务来赢得更多的市场。并且当前用户对电力服务质量要求越来越高,这就促使电力企业的优质服务工作应该实现常态化,而不是特殊时期的特殊工作态度。为了实现这一目标,有必要在企业经营制度中建立电力优质服务常态运行机制。现本文就从运行、保
期刊