资源简介
利用C语言实现JPEG图片解码,转换为BMP图片,在将其灰度化,自定义阈值二值化。
代码片段和文件信息
#include
#include
#include
/*以下注释部分为BMP灰度图的文件结构(已经包含在windows.h文件中在此列出来方便LZ参考)*/
/*
//位图文件头
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
//彩色表
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
//位图信息头
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
*/
void main()
{//所举例程为从BMP灰度图中抽取一层并输出为图片
FILE *fi*fo;
UINT count=0;
BITMAPFILEHEADER bmfh;
BITMAPINFO bmi;
int ij;
BYTE p;
BYTE buf[2000];
//fi = fopen(“bupt_8bit.bmp““rb“);
fi = fopen(“test.bmp““rb“);
if(fi==NULL)
{
printf(“文件打开错误!\n“);
return;
}
//读取文件头
fread(&bmfhsizeof( bmfh ) 1fi);
printf(“文件头信息:\n“);
printf(“文件类型:%c%c\n“bmfh.bfType%256 bmfh.bfType/256);
printf(“文件大小:%d\n“bmfh.bfSize);
printf(“图像数据偏移量:%d\n“bmfh.bfOffBits);
//读BMP信息头--------读彩色表
fread(&bmisizeof(BITMAPINFO)1fi);
printf(“\n图像信息:\n“);
printf(“位图宽度:%d\n“bmi.bmiHeader.biWidth);
printf(“位图高度:%d\n“bmi.bmiHeader.biHeight);
printf(“每个像素的位数:%d\n“bmi.bmiHeader.biBitCount);
printf(“位图数据的大小:%d\n“bmi.bmiHeader.biSizeImage);
printf(“用像素/米表示的水平分辨率:%d\n“bmi.bmiHeader.biXPelsPerMeter);
printf(“用像素/米表示的垂直分辨率:%d\n“bmi.bmiHeader.biYPelsPerMeter);
printf(“每个像素的位数:%d\n“bmi.bmiHeader.biBitCount);
printf(“位图使用的颜色数:%d\n“bmi.bmiHeader.biClrUsed);
for(i=0;i<8;i++)//像为8bits,所以只有8层
{
//fo = fopen(“bupt_8bit_out.bmp““wb“);
fo = fopen(“bupt_out.bmp““wb“);
fseek(fi00);
fread(&buf1bmfh.bfOffBitsfi);//1是因为此处图像为8bits的,所以size是1字节
fwrite(&buf1bmfh.bfOffBitsfo);
fseek(fibmfh.bfOffBits0);//将指针定位到图像数据处,偏移量为bmfh.bfOffBits
for(j=0;j {
fread(&p11fi);
p = (p>>(i+1))<<(i+1);//将后最低i+1层写为0
fwrite(&p11fo);
}
while(fread(&p11fi))
fwrite(&p11fo);
fclose(fo);
printf(“替换%d后的结果回车继续。\n“i);
getchar();
}
fclose(fi);
getchar();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-04 11:46 JPEGtoGarytoBIN_c代码\
目录 0 2017-10-24 23:05 JPEGtoGarytoBIN_c代码\bmptoBIN\
文件 2726 2017-10-10 01:29 JPEGtoGarytoBIN_c代码\bmptoBIN\bmp (2).c
文件 2726 2017-10-10 01:29 JPEGtoGarytoBIN_c代码\bmptoBIN\bmp.c
文件 133584 2017-10-10 01:29 JPEGtoGarytoBIN_c代码\bmptoBIN\bmp.exe
文件 493554 2017-10-10 10:25 JPEGtoGarytoBIN_c代码\bmptoBIN\bupt_out.bmp
文件 493554 2017-10-10 00:44 JPEGtoGarytoBIN_c代码\bmptoBIN\test.bmp
文件 2781 2017-10-10 01:25 JPEGtoGarytoBIN_c代码\bmptoBIN\用C语言进行BMP图像二值化-显示其长宽-最好有解释.txt
目录 0 2017-10-24 23:05 JPEGtoGarytoBIN_c代码\jpegTobmp\
文件 758 1998-04-23 14:04 JPEGtoGarytoBIN_c代码\jpegTobmp\JPEG.H
文件 1214 2017-10-10 16:25 JPEGtoGarytoBIN_c代码\jpegTobmp\Makefile.win
文件 921654 2017-10-10 16:25 JPEGtoGarytoBIN_c代码\jpegTobmp\RGB.bmp
文件 23059 2017-10-10 16:25 JPEGtoGarytoBIN_c代码\jpegTobmp\jpeg2bmp.c
文件 25438 2017-10-10 16:25 JPEGtoGarytoBIN_c代码\jpegTobmp\jpeg2bmp.o
文件 196 2017-10-10 16:23 JPEGtoGarytoBIN_c代码\jpegTobmp\main.c
文件 1137 2017-10-10 16:23 JPEGtoGarytoBIN_c代码\jpegTobmp\main.o
文件 92599 2017-10-10 16:22 JPEGtoGarytoBIN_c代码\jpegTobmp\test.jpg
文件 1459 2017-10-10 15:54 JPEGtoGarytoBIN_c代码\jpegTobmp\tobmp.dev
文件 151580 2017-10-10 16:25 JPEGtoGarytoBIN_c代码\jpegTobmp\tobmp.exe
文件 414 2017-10-10 18:37 JPEGtoGarytoBIN_c代码\jpegTobmp\tobmp.layout
目录 0 2017-10-24 23:05 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\
文件 2367 2017-10-10 00:54 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\binary.c
文件 1341 2017-10-10 00:54 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\binary.o
文件 15217 2017-10-10 00:11 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\test.jpg
文件 4474 2017-10-10 00:56 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\tobinary.c
文件 3084 2017-10-10 00:53 JPEGtoGarytoBIN_c代码\jpegTobmp\新建文件夹\tobinary.o
文件 86 2017-10-10 00:32 JPEGtoGarytoBIN_c代码\jpegTobmp\说明.txt
目录 0 2017-10-24 23:05 JPEGtoGarytoBIN_c代码\toBIN\
文件 165578 2017-10-10 22:40 JPEGtoGarytoBIN_c代码\toBIN\1.bmp
文件 3651 2017-10-10 10:36 JPEGtoGarytoBIN_c代码\toBIN\bin.c
文件 135137 2017-10-10 01:45 JPEGtoGarytoBIN_c代码\toBIN\bin.exe
............此处省略39个文件信息
评论
共有 条评论