• 大小: 3.41MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-10
  • 语言: 其他
  • 标签: 图像去噪  

资源简介

图像去噪,里面包括了中值滤波、均值滤波、混合滤波等代码,还考虑到硬件便于实现,进行了字节对齐,效果不错的

资源截图

代码片段和文件信息

//--== 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.embed.manifest

     文件        472  2013-06-24 16:09  MeanMedianFilterBack\Debug\EDT3.exe.embed.manifest.res

     文件        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\link-cvtres.read.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link-cvtres.write.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.12300-cvtres.read.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.12300-cvtres.write.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.12300.read.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.12300.write.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.13444-cvtres.read.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.13444-cvtres.write.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.13444.read.1.tlog

     文件          2  2013-06-29 00:07  MeanMedianFilterBack\Debug\link.13444.write.1.tlog

............此处省略37个文件信息

评论

共有 条评论