已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字图像处理实验一(位图文件信息的提取和二值化处理) 实验平台:MinGW(Mini Gnu for Windows),里面包含gcc for windows的编译器,将其拷贝值某目录,然后设置环境变量(这里我设为c:MinGW,通过一个批处理命令setc.bat实现)设置完成后,即可通过gcc(g+)命令进行编译。(附:使用VC+ 6.0 也可)相关实验文件下载地址:38 /课件/数字图像处理/实验步骤: 拷贝MinGW文件夹至C: (路径为C:MinGW) 编辑setc.bat文件,然后运行此批处理以设置路径。 编辑hdr.h 和hdr.c文件 编辑bmphdr.c文件,然后在当前文件路径下,使用DOS命令:gcc -c hdr.c /编译,生成hdr.o目标文件gcc -c bmphdr.c /编译,生成bmphdr.o目标文件gcc -o bmphdr.exe hdr.o bmphdr.o/链接,生成bmphdr.exe执行文件使用bmphdr.exe来提取某一个bmp文件的头信息,例如: bmphdr test.bmp 编辑 ez.c文件(用于图像的二值化处理),然后gcc -c ez.c /编译,生成ez.o目标文件gcc -o ez.exe hdr.o ez.o /链接,生成ez.exe执行文件使用 ez.exe文件来对某一个bmp文件进行二值化处理。例如:ez test.bmp result.bmp 108 (对test.bmp文件 进行二值化处理,阈值为108,处理的结果为result.bmp文件)setc.bat内容:echo offset msdir=C:MinGWset PATH=%msdir%bin;%PATH%set INCLUDE=%msdir%Include;%msdir%MFCInclude;%INCLUDE%set LIB=%msdir%Lib;%LIB%补充:如果以上批处理命令无效的话,可以:我的电脑-属性-高级-环境变量 编辑变量path 增加 C: MinGWbin hdr.h文件内容:#ifndef _HDR_H_#define _HDR_H_struct bmphdr char signature2;int size;short reserved2;int offset;int hdr_size;int width;int height;short nr_planes;short bits_per_pixel;int compress_type;int data_size;int resol_hori;int resol_vert;int nr_colors;int important_color;char info1024;struct bmphdr *get_header(char filename);#endifhdr.c文件内容:#include #include #include hdr.hstruct bmphdr *get_header(char filename)FILE *fp;struct bmphdr *hdr; fp = fopen(filename, rb);if (!fp) printf(File open error or such file does not exist!n);return NULL;hdr = (struct bmphdr *)malloc(sizeof(struct bmphdr);fread(hdr-signature, 2, 1, fp);if (hdr-signature0 != B | hdr-signature1 != M) printf(Not a bmp file!n);return NULL;fread(&hdr-size, 4, 1, fp);fread(hdr-reserved, 4, 1, fp);fread(&hdr-offset, 4, 1, fp);fread(&hdr-hdr_size, 4, 1, fp);fread(&hdr-width, 4, 1, fp);fread(&hdr-height, 4, 1, fp);fread(&hdr-nr_planes, 2, 1, fp);fread(&hdr-bits_per_pixel, 2, 1, fp);fread(&hdr-compress_type, 4, 1, fp);fread(&hdr-data_size, 4, 1, fp);fread(&hdr-resol_hori, 4, 1, fp);fread(&hdr-resol_vert, 4, 1, fp);fread(&hdr-nr_colors, 4, 1, fp);fread(&hdr-important_color, 4, 1, fp); if (hdr-offset 54) fread(&hdr-info, 1024, 1, fp); fclose(fp);return hdr;bmphdr.c文件内容:#include struct bmphdr char signature2;int size;short reserved2;int offset;int hdr_size;int width;int height;short nr_planes;short bits_per_pixel;int compress_type;int data_size;int resol_hori;int resol_vert;int nr_colors;int important_color; header;int main(int argc, char *argv)FILE *fp;if (argc != 2) printf(Usage: %s n, argv0);exit(1);fp = fopen(argv1, r);if (!fp) printf(File open error or such file does not exist!n);exit(1);fread(header.signature, 2, 1, fp);if (header.signature0 != B | header.signature1 != M) printf(Not a bmp file!n);exit(1);fread(&header.size, 4, 1, fp);fread(header.reserved, 4, 1, fp);fread(&header.offset, 4, 1, fp);fread(&header.hdr_size, 4, 1, fp);fread(&header.width, 4, 1, fp);fread(&header.height, 4, 1, fp);fread(&header.nr_planes, 2, 1, fp);fread(&header.bits_per_pixel, 2, 1, fp);fread(&press_type, 4, 1, fp);fread(&header.data_size, 4, 1, fp);fread(&header.resol_hori, 4, 1, fp);fread(&header.resol_vert, 4, 1, fp);fread(&header.nr_colors, 4, 1, fp);fread(&header.important_color, 4, 1, fp);fclose(fp);printf(signature %c%cn, header.signature0, header.signature1);printf(size %dn, header.size);printf(offset %dn, header.offset);printf(hdr_size %dn, header.hdr_size);printf(width %dn, header.width);printf(height %dn, header.height);printf(nr_planes %dn, header.nr_planes);printf(bits_per_pixel %dn, header.bits_per_pixel);printf(compress_type %dn, press_type);printf(data_size %dn, header.data_size);printf(resol_hori %dn, header.resol_hori);printf(resol_vert %dn, header.resol_vert);printf(nr_colors %dn, header.nr_colors);printf(important_color %dn, header.important_color);printf(n);return 0;二值化程序 ez.c 文件内容:#include #include #include #include hdr.hstruct bmphdr *hdr;unsigned char *bitmap, *to;char buf2048;int main(int argc, char *argv)int i, j, k, nr_pixels; FILE *fp, *fpnew;unsigned g;if (argc != 4) printf(Usage: %s n, argv0);exit(1);hdr = get_header(argv1);if (!hdr) exit(1);fp = fopen(argv1, rb);if (!fp) printf(File open error!n);exit(1);fseek(fp, hdr-offset, SEEK_SET);nr_pixels = hdr-width * hdr-height;bitmap = malloc(nr_pixels);fread(bitmap, nr_pixels, 1, fp);fclose(fp);k = atoi(argv3);to = malloc(nr_pixels);memset(to, 0, nr_pixels);for (i = 0; i (unsigned char)k ? 255 : 0;fpnew = fopen(argv2, wb+);if (!fpnew) printf(File create error!n);exit(1);fwrite(hdr-signature, 2, 1, fpnew);fwrite(&hdr-size, 4, 1, fpnew);fwrite(hdr-reserved, 4, 1, fpnew);fwrite(&hdr-offset, 4, 1, fpnew);fwrite(&hdr-hdr_size, 4, 1, fpnew);fwrite(&hdr-width, 4, 1, fpnew);fwrite(&hdr-height, 4, 1, fpnew);fwrite(&hdr-nr_planes, 2, 1, fpnew);fwrite(&hdr-bits_per_pixel, 2, 1, fpnew);fwrite(&hdr-compress_type, 4, 1, fpnew);fwrite(&hdr-data_size, 4, 1, fpnew);fwrite(&hdr-resol_hori, 4, 1, fpnew)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗人员电话沟通艺术
- 口腔医疗服务中客户体验与成本控制策略
- 变异株重症治疗策略优化
- 2025广西钦州市开发投资集团有限公司招聘11人模拟试卷附答案
- 2026年一级注册建筑师之建筑经济、施工与设计业务管理考试题库300道及参考答案(新)
- 双免疫联合治疗的个体化方案优化-1
- 压疮预防门诊流程:基于反馈的评估工具与护理方案
- 2026年民用无人机操控员执照(CAAC)考试复习重点题库附答案
- 2026年一级建造师之一建铁路工程实务考试题库300道附完整答案【考点梳理】
- 2025湖南郴州市安仁县工商联(总商会)选聘2人备考题库附答案
- 网络国家安全课件
- 2025新冠后中国旅游市场复苏现状发展趋势研究报告
- 2024统编版七年级语文上册第五单元测试卷(原卷版+答案版)
- 生命体征监测技术临床应用
- 2025哈萨克斯坦钢铁行业市场供需分析及投资评估规划分析研究报告
- 腹腔镜下疝修补术课件
- 2025年西藏公安机关招聘警务辅助人员笔试考试试卷附答案
- 成人肠内营养支持的护理TCNAS19-2020
- 发电厂安全生产风险评估报告
- 2025年领导干部任前廉政知识测试题附答案
- 2025四川成都广播影视集团有限责任公司招聘22人笔试参考题库附答案
评论
0/150
提交评论