ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:81.50KB ,
资源ID:3165252      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3165252.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用 c 语言进行数字图像处理.doc)为本站会员(ng****60)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

用 c 语言进行数字图像处理.doc

1、 用 c 语言进行数字图像处理 其实,数字图像处理有几步呢?一共三步。第一步,读入图片。第二步,处理图片。第三步,保存图片 。 而第二步主要涉及的是处理图像的算法,所以,我在这里就不多说了。而第一步和第三步是为第二步做 位图文件结构的声明:BMP.h #ifndef BMP_H_INCLUDED #define BMP_H_INCLUDED typedef unsigned short WORD; typedef unsigned long DWORD; typedef long LONG; typedef unsigned char BYTE; typedef struct tagBITMA

2、PFILEHEADER / bmfh WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER; typedef struct tagBITMAPINFOHEADER / bmih DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG

3、 biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADER; typedef struct tagRGBQUAD / rgbq BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; RGBQUAD; typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors1; BITMAPINFO; #endif / BMP_H_INCLUDED 主程序:main.c

4、 #include #include #include #include #include #include #include “BMP.h“ BITMAPFILEHEADER bmfh; BITMAPINFOHEADER bmih; BYTE *imgData; bool bReadBMFH=false; bool bReadBMIH=false; bool bReadPixel=false; /检查路径是否合法:文件能打开;以 bmp 为后缀名 int CheckFilePath(char *filepath); /读入位图的文件头 int ReadFileHeader(char *fil

5、epath,BITMAPFILEHEADER *bmfh); /打印位图的文件头 void PrintFileHeader(BITMAPFILEHEADER *bmfh); /读入位图的信息头 int ReadInfoHeader(char *filepath,BITMAPINFOHEADER *bmih); /打印位图的信息头 void PrintInfoHeader(BITMAPINFOHEADER *bmih); /创建 8 位位图的调色板 int CreatePalette(RGBQUAD pal); /读入位图的像素数据 int ReadPixelData(char *filepat

6、h,BYTE *imgData); /计算每行像素所占的字节数 LONG GetLineBytes(int imgWidth,int bitCount); /打印位图的像素数据 void PrintPixelData(BYTE *imgData,int width,int height,int bitCount); /打印菜单选项 void PrintMenu(); /另存为位图 int SaveAsImage(char *filepath); /显示位图 void ShowImage(char * filepath); /保存文件头 int SaveFileHeader(FILE* fp);

7、 /保存信息头 int SaveInfoHeader(FILE* fp); /保存调色板 int SaveColorPalette(FILE *fp); /保存像素数据 int SavePixelData(FILE* fp); int main() char filepath256; char saveasfilepath256; int i; int width; int height; int bitCount; DWORD dwLineBytes; int select; int q=0; system(“echo off“); system(“color 2“); printf(“-T

8、IMimage-n“); printf(“Input the path of the BMP file:n“); gets(filepath); i=CheckFilePath(filepath); if(i=-1) return -1; do PrintMenu(); scanf(“%u“, switch(select) case 0: printf(“Input the path of the BMP file:n“); scanf(“%s“,filepath); CheckFilePath(filepath); break; case 1: i=ReadFileHeader(filepa

9、th, if(i!=-1) printf(“Read the file header successfully.n“); bReadBMFH=true; break; else printf(“Read the file header failed.n“); bReadBMFH=false; q=1; break; case 2: i=ReadInfoHeader(filepath, if(i!=-1) printf(“Read the info header successfully.n“); bReadBMIH=true; break; else printf(“Read the info

10、 header failed.n“); bReadBMIH=false; q=1; break; case 3: if(!bReadBMIH) printf(“Please read the info header at first.n“); break; height=bmih.biHeight; width=bmih.biWidth; bitCount=bmih.biBitCount; dwLineBytes=GetLineBytes(width,bitCount); imgData=(BYTE*)malloc(dwLineBytes*height*sizeof(BYTE); if(!im

11、gData) printf(“Can not allocate memory for the image.n“); q=1; break; i=ReadPixelData(filepath,imgData); if(i=-1) printf(“Read the pixel data failed.n“); bReadPixel=false; q=1; break; else printf(“Read the pixel data successfully.n“); bReadPixel=true; break; case 4: if(bReadBMFH) PrintFileHeader( br

12、eak; else printf(“Please read the file header at first.n“); break; case 5: if(bReadBMIH) PrintInfoHeader( break; else printf(“Please read the info header at first.n“); break; case 6: if(bReadPixel) PrintPixelData(imgData,width,height,bitCount); break; else printf(“Please read the pixel data at first

13、.n“); break; case 7: ShowImage(filepath); break; case 8: printf(“Input the path(ex. d:/poon.bmp) you want to save:n“); scanf(“%s“,saveasfilepath); i=SaveAsImage(saveasfilepath); if(i=-1) printf(“Error: failed to save the image.n“); break; break; default: q=1; break; select=9527; while (q=0); return

14、0; int ReadFileHeader(char *filepath,BITMAPFILEHEADER *bmfh) FILE *fp; fp=fopen(filepath,“rb“); if(!fp) printf(“Can not open the file:%sn“,filepath); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(frea

15、d( fclose(fp); return -1; fclose(fp); return 0; int ReadInfoHeader(char *filepath,BITMAPINFOHEADER *bmih) FILE *fp; fp=fopen(filepath,“rb“); if(!fp) printf(“Can not open the file:%sn“,filepath); return -1; fseek(fp,14,SEEK_SET); if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fr

16、ead( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; if(fread( fclose(fp); return -1; fclose(f

17、p); return 0; int CreatePalette(RGBQUAD pal) int i; if(sizeof(pal)/sizeof(RGBQUAD)!=256) printf(“The size of the palette must be 256.n“); return -1; for(i=0;i256;i+) pali.rgbBlue=i; pali.rgbGreen=i; pali.rgbRed=i; pali.rgbReserved=0; return 0; int ReadPixelData(char *filepath,BYTE *imgData) BITMAPIN

18、FOHEADER bmih; BITMAPFILEHEADER bmfh; BYTE *data; FILE *fp; int n; int width; int height; int bitCount; DWORD dwLineBytes; n=ReadFileHeader(filepath, if(n=-1) printf(“Can not read the file header of the BMP file.n“); return -1; n=ReadInfoHeader(filepath, if(n=-1) printf(“Can not read the info header of the BMP file.n“); return -1; width=bmih.biWidth; height=bmih.biHeight;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。