• 大小: 9.38MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-09
  • 语言: C/C++
  • 标签: Visual+C++  

资源简介

Visual+C++ 图像浏览器 二值化 直方图 等等

资源截图

代码片段和文件信息

#include “stdio.h“
#include “Windows.h“
//几个全局变量,存放读入图像的位图数据、宽、高、颜色表及每像素所占位数(比特) 
//此处定义全局变量主要为了后面的图像数据访问及图像存储作准备
unsigned char *pBmpBuf;//读入图像数据的指针
int bmpWidth;//图像的宽
int bmpHeight;//图像的高
RGBQUAD *pColorTable;//颜色表指针
int biBitCount;//图像类型

/***********************************************************************
* 函数名称:
* readBmp()
*
*函数参数:
*  char *bmpName -文件名字及路径
*
*返回值:
*   0为失败1为成功
*
*说明:给定一个图像文件名及其路径,读图像的位图数据、宽、高、颜色表及每像素
*      位数等数据进内存存放在相应的全局变量中
***********************************************************************/
bool readBmp(char *bmpName)
{
//二进制读方式打开指定的图像文件
    FILE *fp=fopen(bmpName“rb“);
if(fp==0) return 0;


//跳过位图文件头结构BITMAPFILEHEADER
fseek(fp sizeof(BITMAPFILEHEADER)0);


//定义位图信息头结构变量,读取位图信息头进内存,存放在变量head中
BITMAPINFOHEADER head;  
fread(&head sizeof(BITMAPINFOHEADER) 1fp); 

//获取图像宽、高、每像素所占位数等信息
bmpWidth = head.biWidth;
bmpHeight = head.biHeight;
biBitCount = head.biBitCount;

//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)
int lineByte=(bmpWidth * biBitCount/8+3)/4*4;

//灰度图像有颜色表,且颜色表表项为256
if(biBitCount==8){
//申请颜色表所需要的空间,读颜色表进内存
pColorTable=new RGBQUAD[256];
fread(pColorTablesizeof(RGBQUAD)256fp);
}

//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=new unsigned char[lineByte * bmpHeight];
fread(pBmpBuf1lineByte * bmpHeightfp);

//关闭文件
fclose(fp);

return 1;
}

/***********************************************************************
* 函数名称:
* saveBmp()
*
*函数参数:
*  char *bmpName -文件名字及路径
*  unsigned char *imgBuf  -待存盘的位图数据
*  int width   -像素为单位待存盘位图的宽
*  int  height  -像素为单位待存盘位图高
*  int biBitCount   -每像素所占位数
*  RGBQUAD *pColorTable  -颜色表指针

*返回值:
*   0为失败1为成功
*
*说明:给定一个图像位图数据、宽、高、颜色表指针及每像素所占的位数等信息,
*      将其写到指定文件中
***********************************************************************/
bool saveBmp(char *bmpName unsigned char *imgBuf int width int height 
 int biBitCount RGBQUAD *pColorTable)
{
//如果位图数据指针为0则没有数据传入函数返回
if(!imgBuf)
return 0;

//颜色表大小以字节为单位灰度图像颜色表为1024字节彩色图像颜色表大小为0
int colorTablesize=0;
if(biBitCount==8)
colorTablesize=1024;

//待存储图像数据每行字节数为4的倍数
int lineByte=(width * biBitCount/8+3)/4*4;

//以二进制写的方式打开文件
FILE *fp=fopen(bmpName“wb“);
if(fp==0) return 0;

//申请位图文件头结构变量,填写文件头信息
BITMAPFILEHEADER fileHead;
fileHead.bfType = 0x4D42;//bmp类型

//bfSize是图像文件4个组成部分之和
fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)
+ colorTablesize + lineByte*height;
fileHead.bfReserved1 = 0;
fileHead.bfReserved2 = 0;

//bfOffBits是图像文件前三个部分所需空间之和
fileHead.bfOffBits=54+colorTablesize;

//写文件头进文件
fwrite(&fileHead sizeof(BITMAPFILEHEADER)1 fp);

//申请位图信息头结构变量,填写信息头信息
BITMAPINFOHEADER head; 
head.biBitCount=biBitCount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=0;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biWidth=width;
head.biXPelsPerMeter=0;
hea

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        230  2008-07-02 13:09  光盘文件\Readme.txt

    ..A..H.     19968  2008-06-21 04:00  光盘文件\各章测试图\第一章\Thumbs.db

     文件     350456  2007-09-21 14:31  光盘文件\各章测试图\第一章\图1-10数据修改后图像对比 a.bmp

     文件     810056  2007-09-21 09:34  光盘文件\各章测试图\第一章\故宫角楼.bmp

     文件     117880  2007-09-21 14:32  光盘文件\各章测试图\第一章\狗.bmp

     文件    1931856  2007-09-21 14:51  光盘文件\各章测试图\第一章\鸟.bmp

    ..A..H.     25088  2008-06-21 04:00  光盘文件\各章测试图\第七章\Thumbs.db

     文件     196664  2007-06-18 15:21  光盘文件\各章测试图\第七章\图7-12a.bmp

     文件     263222  2007-06-21 20:43  光盘文件\各章测试图\第七章\图7-13a.bmp

     文件     196662  2008-06-10 10:44  光盘文件\各章测试图\第七章\图7-14a.bmp

     文件      77936  2007-04-04 17:09  光盘文件\各章测试图\第七章\图7-2.bmp

     文件      66616  2007-06-18 15:30  光盘文件\各章测试图\第七章\图7-3a_8bit.bmp

     文件      66614  2007-03-26 23:37  光盘文件\各章测试图\第七章\图7-5a.bmp

     文件       6465  2008-06-10 09:24  光盘文件\各章测试图\第七章\图7-6a.jpg

     文件     139896  2007-06-21 20:25  光盘文件\各章测试图\第七章\图7-8a.bmp

    ..A..H.     17920  2008-06-21 04:00  光盘文件\各章测试图\第三章\Thumbs.db

     文件     309656  2008-01-18 14:55  光盘文件\各章测试图\第三章\图3-5图像平移效果示意图 a.bmp

     文件     375656  2008-06-07 04:41  光盘文件\各章测试图\第三章\图3-6图像转置效果示意图 a.bmp

     文件     309656  2008-06-07 04:41  光盘文件\各章测试图\第三章\图3-7 3-14 a.bmp

    ..A..H.     47616  2008-06-21 04:00  光盘文件\各章测试图\第九章\Thumbs.db

     文件      17464  2005-03-24 21:37  光盘文件\各章测试图\第九章\图9-5a.bmp

     文件      17464  2005-03-24 17:37  光盘文件\各章测试图\第九章\图9-5b.bmp

    ..A..H.     22528  2008-06-21 04:00  光盘文件\各章测试图\第二章\Thumbs.db

     文件     320456  2008-06-07 04:40  光盘文件\各章测试图\第二章\图2-13 对数拉伸和指数拉伸效果图 a.bmp

     文件     121080  2008-06-07 04:39  光盘文件\各章测试图\第二章\图2-16直方图均衡前后图像及其直方图变化对比图 a.bmp

     文件    1360856  2008-06-07 04:40  光盘文件\各章测试图\第二章\图2-5 负相操作结果 a.bmp

     文件     315656  2008-06-07 04:40  光盘文件\各章测试图\第二章\图2-9 线性拉伸运行结果 a.bmp

     文件     340856  2008-01-18 14:30  光盘文件\各章测试图\第二章\鼠.bmp

     文件      66614  2007-12-12 14:41  光盘文件\各章测试图\第五章\5-2flower256x256.bmp

     文件      66614  2007-12-12 14:48  光盘文件\各章测试图\第五章\5-2flower椒盐噪声.bmp

............此处省略375个文件信息

评论

共有 条评论