资源简介
图像去噪,里面包括了中值滤波、均值滤波、混合滤波等代码,还考虑到硬件便于实现,进行了字节对齐,效果不错的
代码片段和文件信息
//--== Global Define ==--
#include
#include
#include
#include
#include “BmpRW.h“
using namespace std;
//--== Struct Declaration ==--
struct PIX {
unsigned short r;
unsigned short g;
unsigned short b;
};
PIX **pix;
PIX **pix_new;
//--== Variable Declaration ==--
int height; // The Input Picture Height
int width; // The Input Picture Width
int type_in;
PIX median(PIX* elements int width);
void hybridMedianFilter(int height int width PIX **pix PIX **pix_new);
void medianFilter(int height int width PIX **pix PIX **pix_new);
void meanFilter(int height int width PIX **pix PIX **pix_new);
void sobel_edge_detect(int height int width PIX **pix PIX **pix_new);
PIX getPix(PIX **pix int row int col);
unsigned short GetPix(PIX **pix int rowint colint rgb);
short abs(short a);
void main(int argc char* argv[])
{
int ij;
int image_size; //The multiple of height and width
int biSizeImage; //The value get from the picture
int left;
int offset;
BITMAPFILEHEADER *pbmpfh; // bmp文件头指针
BITMAPINFOHEADER *pbmpi; // bmp文件信息头指针
unsigned char *pbitstr; // bmp文件数据指针
// 将bmp文件头文件读入*pbmpfh
#if 0
FILE *rfile = fopen(“./checkResults/pic_in.bmp“ “rb+“);
FILE *wfile = fopen(“./checkResults/pic_out.bmp““wb+“);
#endif
#if 1
FILE *rfile = fopen(“./checkResults/lena_225x225.bmp“ “rb+“);
FILE *wfile = fopen(“./checkResults/lena_225x225_out.bmp““wb+“);
#endif
#if 0
FILE *rfile = fopen(“./checkResults/lena_225x225_F.bmp“ “rb+“);
FILE *wfile = fopen(“./checkResults/lena_225x225_F_out.bmp““wb+“);
#endif
#if 0
FILE *rfile = fopen(“./checkResults/lena_263x192.bmp“ “rb+“);
FILE *wfile = fopen(“./checkResults/lena_263x192_out.bmp““wb+“);
#endif
pbmpfh = (BITMAPFILEHEADER*) calloc(1 sizeof(BITMAPFILEHEADER));
if (!pbmpfh) {
printf(“Error: pbmpfh have not enough memory!“);
}
fseek(rfilesizeof(short)SEEK_SET);
fread(pbmpfhsizeof(BITMAPFILEHEADER)1rfile);
// 将bmp文件信息头文件读入*pbmpi
pbmpi = (BITMAPINFOHEADER*) calloc(1 sizeof(BITMAPINFOHEADER));
if (!pbmpi) {
printf(“Error: pbmpi have not enough memory!“);
}
fseek(rfilesizeof(BITMAPFILEHEADER)+sizeof(short)SEEK_SET);
fread(pbmpisizeof(BITMAPINFOHEADER)1rfile);
// 将bmp文件数据读入*pbitstr
width = pbmpi->biWidth;
height = pbmpi->biHeight;
image_size = height *width;
biSizeImage = pbmpi->biSizeImage;
pbitstr = (unsigned char*) calloc(biSizeImage sizeof(char));
if (!pbitstr) {
printf(“Error: pbitstr have not enough memory!“);
}
fseek(rfilepbmpfh->bfOffBitsSEEK_SET);
fread(pbitstr biSizeImage 1 rfile);
fclose(rfile);
// 生成RGB的二维PIX数组
PIX **pix = new PIX*[height];
PIX **pix_new = new PIX*[height];
for(i=0; i pix[i] = new PIX[width];
pix_new[i] = new PIX[width];
}
// 将BMP图像读入数组并考虑行沿边4字节对齐
offset = 0;
left= 3 *width %4;
for(i=0; i fo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1660 2011-06-10 22:48 MeanMedianFilterBack\BmpRW.h
文件 152154 2013-06-25 00:40 MeanMedianFilterBack\checkResults\lena_225x225.bmp
文件 152154 2013-06-25 00:41 MeanMedianFilterBack\checkResults\lena_225x225_F.bmp
文件 152154 2013-06-29 00:07 MeanMedianFilterBack\checkResults\lena_225x225_out.bmp
文件 152118 2013-06-25 00:40 MeanMedianFilterBack\checkResults\lena_263x192.bmp
文件 27702 2011-06-10 22:48 MeanMedianFilterBack\checkResults\pic_in.bmp
文件 27702 2013-06-28 20:13 MeanMedianFilterBack\checkResults\pic_out.bmp
文件 184 2011-06-10 22:48 MeanMedianFilterBack\clean.bat
文件 602 2013-06-29 00:07 MeanMedianFilterBack\Debug\cl.command.1.tlog
文件 9088 2013-06-29 00:07 MeanMedianFilterBack\Debug\CL.read.1.tlog
文件 264 2013-06-29 00:07 MeanMedianFilterBack\Debug\CL.write.1.tlog
文件 44544 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.exe
文件 406 2013-06-24 16:09 MeanMedianFilterBack\Debug\EDT3.exe.em
文件 472 2013-06-24 16:09 MeanMedianFilterBack\Debug\EDT3.exe.em
文件 381 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.exe.intermediate.manifest
文件 646788 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.ilk
文件 56 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.lastbuildstate
文件 3686 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.log
文件 666624 2013-06-29 00:07 MeanMedianFilterBack\Debug\EDT3.pdb
文件 198 2013-06-24 16:09 MeanMedianFilterBack\Debug\EDT3_manifest.rc
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
文件 2 2013-06-29 00:07 MeanMedianFilterBack\Debug\li
............此处省略37个文件信息
相关资源
- 稀疏分解图像去噪
- 基于深度卷积神经网络图像去噪算法
- 基于中值滤波与小波变换的图像去噪
- GPU自适应图像去噪完整程序
- 优秀的图像去噪算法合集
- 基于卷积神经网络的图像去噪基础篇
- 偏微分图像去噪中的经典算法分裂B
- 源码图像去噪-lee filter.rar
- 基于频域的图像去噪方法
- 基于Contourlet变换的图像去噪源代码
- 平移不变小波去噪程序演示
- kinect深度图像去噪
- 神经网络图像去噪
- 基于提升小波的图像去噪算法的FPGA设
- 轮廓波contourlet工具箱
- 基于边缘检测的Contourlet 变换图像去噪
- 基于形态学的权重自适应图像去噪.
- 基于CURVELET变换的自适应阈值图像去噪
- 小波阈值图像去噪源代码
- 一种新的改进阈值的小波包图像去噪
- 论文研究-基于小波变换和均值滤波相
- 基于小波变换的图像去噪算法及代码
- 小波软硬及折中阈值法图像去噪
- 源码图像去噪-小波阈值去噪.zip
- 基于小波变换的自适应多阈值图像去
- contourlet变换图像的去噪算法
- 一种基于轮廓波图像去噪算法
- 基于Curvelet变换的去噪
评论
共有 条评论