该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#include
#include
#include "stdlib.h"
#include "string.h"
#define width 256
#define higth 256
//原图象的宽度和高度
int lvbo(unsigned char D[])
{
int a;
a=(D[0]+D[1]+D[2]+D[3]+D[4]+D[5]+D[6]+D[7]+D[8]+D[9]+D[10]+D[11]+D[12]+D[13]+D[14]+D[15]+D[16]+D[17]+D[18]+D[19]+D[20]+D[21]+D[22]+D[23]+D[24])/25;
//printf("%d",a);
return a;
}
void main()
{
FILE *fp,*newfp;
int i,j;
unsigned char D[25];//定义选取框
unsigned char buffer[54+1024];//定义原图像头缓冲区
unsigned long length=width*higth;//图像的总象素个数
unsigned char readData[higth][width]; //用于存储原图数据的数组
unsigned char writeData[higth][width]; //用于存储原图数据的数组
if(!(fp=fopen("C:\\Users\\Alan\\Desktop\\pic\\line.jpg","rb")))
{
printf("Open file1 error!\n");
return ;
}
if(!(newfp=fopen("C:\\Users\\Alan\\Desktop\\pic\\2.jpg","wb")))
{
printf("Open file2 error!\n");
return ;
}
fread(buffer,1,54+1024,fp);//读取文件头54个字节
fread(&readData[0][0], sizeof(unsigned char),length, fp);//从原图读入数据
for(i=0;i
{
for(j=0;j
{
writeData[i][j]=readData[i][j];
}
}
for(i=2;i
{
for(j=2;j
{
D[0]=readData[i-2][j-2];
D[1]=readData[i-2][j-1];
D[2]=readData[i-2][j];
D[3]=readData[i-2][j+1];
D[4]=readData[i-2][j+2];
D[5]=readData[i-1][j-2];
D[6]=readData[i-1][j-1];
D[7]=readData[i-1][j];
D[8]=readData[i-1][j+1];
D[9]=readData[i-1][j+2];
D[10]=readData[i][j-2];
D[11]=readData[i][j-1];
D[12]=readData[i][j];
D[13]=readData[i][j+1];
D[14]=readData[i][j+2];
D[15]=readData[i+1][j-2];
D[16]=readData[i+1][j-1];
D[17]=readData[i+1][j];
D[18]=readData[i+1][j+1];
D[19]=readData[i+1][j+2];
D[20]=readData[i+2][j-2];
D[21]=readData[i+2][j-1];
D[22]=readData[i+2][j];
D[23]=readData[i+2][j+1];
D[24]=readData[i+2][j+2];
writeData[i][j]=lvbo(D);
}
}
fwrite(buffer,sizeof(unsigned char),54+1024,newfp);
fwrite(writeData,sizeof(unsigned char),length,newfp);
fclose(newfp);
fclose(fp);
printf("success\n");
return ;
}