c语言平滑raw图像(取平均值法)
生活随笔
收集整理的這篇文章主要介紹了
c语言平滑raw图像(取平均值法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*這是一個利用3*3模板對raw格式圖像進行平滑的程序。先讀入,再平滑,最后將平滑后的圖像寫入result.raw*/
#include<stdio.h>
void main()
{
/*聲明變量*/
unsigned char *pData=new unsigned char[256*256]; //源圖像
unsigned char *pnewData=new unsigned char[256*256];//平滑后的圖像
int i,j;
FILE *fp; //源圖像指針
FILE *fp2; //結果圖像指針
fp=fopen("Lena.raw","rb"); //打開源圖像
if(!fp)
{
printf("Read ERROR!\n");
}
fread(pData,sizeof(unsigned char),256*256,fp); //將源圖像數據讀入pData數組中
for(i=0;i<256*256;i++) //?//首先將源圖像所有像素賦給新數組。保證邊界 。并注意類型轉換,下同
{
pnewData[i]=(int)pData[i];
}
pnewData[i*256+j]=(pData[(i-1)*256+(j-1)]+pData[(i-1)*256+j]+pData[(i-1)*256+j+1]+pData[i*256+j-1]+pData[(i)*256+j]+
pData[(i)*256+(j+1)]+pData[(i+1)*256+j]+pData[(i+1)*256+(j-1)]+pData[(i+1)*256+(j+1)])/9;
}
for(i=0;i<256*256;i++) ???//再將類型轉換回去
{
pnewData[i]=(unsigned char)pnewData[i];
}
fclose(fp);
/*將結果數組寫回一個新的result.raw*/
fp2=fopen("result.raw","wb");
fwrite(pnewData,(256*256),sizeof(unsigned char),fp2);
fclose(fp2);
delete[] pData;
delete[] pnewData;
}
#include<stdio.h>
void main()
{
/*聲明變量*/
unsigned char *pData=new unsigned char[256*256]; //源圖像
unsigned char *pnewData=new unsigned char[256*256];//平滑后的圖像
int i,j;
FILE *fp; //源圖像指針
FILE *fp2; //結果圖像指針
fp=fopen("Lena.raw","rb"); //打開源圖像
if(!fp)
{
printf("Read ERROR!\n");
}
fread(pData,sizeof(unsigned char),256*256,fp); //將源圖像數據讀入pData數組中
for(i=0;i<256*256;i++) //?//首先將源圖像所有像素賦給新數組。保證邊界 。并注意類型轉換,下同
{
pnewData[i]=(int)pData[i];
}
for(i=1;i<255;i++) ? ??//平滑圖像 注意[]里面i j 的用法
for(j=1;j<255;j++)
{pnewData[i*256+j]=(pData[(i-1)*256+(j-1)]+pData[(i-1)*256+j]+pData[(i-1)*256+j+1]+pData[i*256+j-1]+pData[(i)*256+j]+
pData[(i)*256+(j+1)]+pData[(i+1)*256+j]+pData[(i+1)*256+(j-1)]+pData[(i+1)*256+(j+1)])/9;
}
for(i=0;i<256*256;i++) ???//再將類型轉換回去
{
pnewData[i]=(unsigned char)pnewData[i];
}
fclose(fp);
/*將結果數組寫回一個新的result.raw*/
fp2=fopen("result.raw","wb");
fwrite(pnewData,(256*256),sizeof(unsigned char),fp2);
fclose(fp2);
delete[] pData;
delete[] pnewData;
}
總結
以上是生活随笔為你收集整理的c语言平滑raw图像(取平均值法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用c语言读取固定大小的raw格式图像并统
- 下一篇: 从对话框中传递参数到视图类