- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数字图像处理实验一位图文件信息的提取和二值化处理
数字图像处理实验一
(位图文件信息的提取和二值化处理)
实验平台: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 off
set msdir=C:\MinGW
set PATH=%msdir%\bin;%PATH%
set INCLUDE=%msdir%\Include;%msdir%\MFC\Include;%INCLUDE%
set LIB=%msdir%\Lib;%LIB%
补充:如果以上批处理命令无效的话,可以:
我的电脑-属性-高级-环境变量 MinGW\bin
hdr.h文件内容:
#ifndef __HDR_H__
#define __HDR_H__
struct bmphdr {
char signature[2];
int size;
short reserved[2];
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 info[1024];
};
struct bmphdr *get_header(char filename[]);
#endif
hdr.c文件内容:
#include stdio.h
#include memory.h
#include hdr.h
struct 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-signature[0] != B || hdr-signature[1] != 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, f
文档评论(0)