资源简介
C语言写的算法,实现了数字图像处理的均值滤波算法,比较简单,适合初学者。
代码片段和文件信息
// junzhilvbo.cpp : Defines the entry point for the console application.
// 10031 张敏 2010302590099
#include “stdafx.h“
#include “stdio.h“
#include “string.h“
#include “stdlib.h“
#define DATA_X 256 //数字图像水平像素个数
#define DATA_Y 256 //数字图像竖直像素个数
int main(int argc char* argv[])
{
void OpenFile(const char cFilePath[]int nOriginalData[DATA_Y][DATA_X]); //函数申明
void SaveFile(const char cFilePath[]int nResultData[DATA_Y][DATA_X]);
bool JunZhiLvBo(const int nOriginalData[DATA_Y][DATA_X]int nResultData[DATA_Y][DATA_X]);
int nOriginalData[DATA_Y][DATA_X]; //保存原始图像灰度值
int nResultData[DATA_Y][DATA_X]; //保存滤波后图像灰度值
memset(nOriginalData0sizeof(nOriginalData)); //初始化数组
memset(nResultData0sizeof(nResultData));
char cOpenFilePath[] = “Lena.raw“; //图像文件路径
OpenFile(cOpenFilePathnOriginalData);
if(!JunZhiLvBo(nOriginalDatanResultData)) //滤波计算
{
printf(“操作失败!\n“);
exit(0);
}
char cSaveFilePath[] = “Result.raw“; //文件保存路径
SaveFile(cSaveFilePathnResultData);
return 0;
}
void OpenFile(const char cFilePath[]int nOriginalData[DATA_Y][DATA_X])
{
printf(“正在获取数据…\n“);
FILE *fp;
fp = fopen(cFilePath“r“);
if(fp==NULL) //判断文件是否打开成功
{
printf(“文件打开失败!\n“);
exit(0);
}
unsigned char *pData = new unsigned char[DATA_Y*DATA_X];
fread(pData1DATA_Y*DATA_Xfp); //读取各像素点赋灰度值
int count_xcount_y;
for(count_y=0;count_y for(count_x=0;count_x nOriginalData[count_y][count_x] = (unsigned int)pData[count_y*DATA_X+count_x]; //将像素点灰度值储存在二维数组中
delete [] pData;
fclose(fp);
}
void SaveFile(const char cFilePath[]int nResultData[DATA_Y][DATA_X])
{
printf(“正在保存数据…\n“);
int count_xcount_y;
FILE *fp;
fp = fopen(cFilePath“w“);
if(fp==NULL) //判断文件是否打开成功
{
printf(“文件保存败!\n“);
exit(0);
}
for(count_y=0;count_y for(count_x=0;count_x fwrite(&nResultData[count_y][count_x]11fp);
fclose(fp);
printf(“文件保存成功! \n“);
}
bool JunZhiLvBo(const int nOriginalData[DATA_Y][DATA_X]int nResultData[DATA_Y][DATA_X])
{
printf(“正在进行均值滤波计算…\n“);
int count_xcount_y;
for(count_y=1;count_y for(count_x=1;count_x nResultData[count_y][count_x]=(int)((nOriginalData[count_y-1][count_x-1]+
nOrig
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 297 2012-04-14 20:16 StdAfx.cpp
文件 769 2012-04-14 20:16 StdAfx.h
文件 3987 2012-04-14 21:54 junzhilvbo.cpp
文件 65536 2010-03-28 20:43 Lena.raw
----------- --------- ---------- ----- ----
70589 4
- 上一篇:MFC电梯仿真模拟源码超酷
- 下一篇:花束摆放问题
相关资源
- 功能非常全的数字图像处理程序含源
- 中值滤波、均值滤波和高斯滤波代码
- Visual C++数字图像处理技术详解 pdf+源
- 局部均值滤波(local statistics neibor f
- 基于linux下的图像缩小 c语言
- c语言均值滤波源程序
- C++ 数字图像处理源代码
- 数字图像处理 印前输出 rip 数字加
- MFC数字图像处理BMP格式读取 保存 DF
- 数字图像处理图像锐化C++实现
- 《实用数字图像处理与分析(2版)》
- c++ 数字图像处理小程序
- Visual c++数字图像处理典型算法及随书
- Visual C++ 实践与提高 数字图像处理与
- 数字图像处理编程入门 VC++ 有源码
- 图像处理-bmp图像均值滤波-C++
- 山东大学数字图像处理实验1-3
- 均值滤波的C语言程序
- 数字图像处理 程序 VC6.0 MFC编写
- 数字图像处理滤波降噪C++实现
- VC数字图像处理编程讲座
评论
共有 条评论