资源简介
本程序是用Cuda C 编写实现的图像去噪算法,去噪思想是在空域中对图像中的噪声进行自适应去噪处理,针对的是椒盐噪声,先对椒盐噪声进行确定,之后再处理。本程序的执行效率非常高。最高加速比达三个数量级。
代码片段和文件信息
// CUDA utilities and system includes
#include
// Includes
#include
#include
#include
#include
#include “SobelFilter_kernels.h“
// includes project
#include // includes cuda.h and cuda_runtime_api.h
#include // standard utility and system includes
//函数声明
bool readBmp(char *bmpName);
bool saveBmp(char *bmpName unsigned char *imgBuf int width int height int biBitCount RGBQUAD *pColorTable);
unsigned char computAve(unsigned char *arrint n);
unsigned char computMed(unsigned char *arrint n);
unsigned char computSignalMed(unsigned char *arrint n);
void medFilter(unsigned char *imgBufint width int heightint biBitCount );
void initializeData(char *file) ;
const char *sSDKsample = “CUDA Adapt Denoise Filter!“;
// 定义用于保存的文件名
char *denoiseGPU=“DenoiseGPU.bmp“;
char denoiseCPU[]=“DenoiseCPU.bmp“;
static int imWidth = 0; // Image width
static int imHeight = 0; // Image height
unsigned char * pixels = NULL; // 主机端的源图像数据
unsigned char * imgDes = NULL; // CPU上处理理的结果指针
int bmpWidth;
int bmpHeight;
RGBQUAD *pColorTable;
int biBitCount;
float imageScale = 1.f; // Image exposure
enum SobelDisplayMode g_SobelDisplayMode;
int *pArgc = NULL;
char **pArgv = NULL;
//extern “C“ void runAutoTest();
void runAutoTest();
////////////////////////////////////////////////////////////////////////////////
// These are CUDA Helper functions
// This will output the proper CUDA error strings in the event that a CUDA host call returns an error
#define checkCudaErrors(err) __checkCudaErrors (err __FILE__ __LINE__)
inline void __checkCudaErrors( cudaError err const char *file const int line )
{
if( cudaSuccess != err)
{
fprintf(stderr “%s(%i) : CUDA Runtime API error %d: %s.\n“
file line (int)err cudaGetErrorString( err ) );
exit(-1);
}
}
// This will output the proper error string when calling cudaGetLastError
#define getLastCudaError(msg) __getLastCudaError (msg __FILE__ __LINE__)
inline void __getLastCudaError( const char *errorMessage const char *file const int line )
{
cudaError_t err = cudaGetLastError();
if( cudaSuccess != err) {
fprintf(stderr “%s(%i) : getLastCudaError() CUDA error : %s : (%d) %s.\n“
file line errorMessage (int)err cudaGetErrorString( err ) );
exit(-1);
}
}
// end of CUDA Helper Functions
void initializeData(char *file)
{
size_t file_length= strlen(file);
if(!strcmp(&file[file_length-3] “bmp“))
{
if(!readBmp(file))
{
printf(“Failed to load BMP image file: %s\n“ file);
exit(-1);
}
}
else
{
cudaDeviceReset();
exit(-1);
}
imWidth=(int)bmpWidth;
imHeight=(int)bmpHeight;
setupTexture(imWidth imHeight pixels);//使用CUDA数组
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-12-06 13:06 MySobelFilter\
目录 0 2013-01-07 14:54 MySobelFilter\Debug\
文件 22442 2012-11-15 13:14 MySobelFilter\Debug\BuildLog.htm
文件 37 2012-11-15 13:14 MySobelFilter\Debug\SobelFilter.device-li
文件 145 2012-11-15 13:14 MySobelFilter\Debug\SobelFilter.exe.intermediate.manifest
文件 253569 2012-11-15 13:14 MySobelFilter\Debug\SobelFilter.obj
文件 3083264 2012-11-15 13:14 MySobelFilter\Debug\SobelFilter.pdb
文件 241618 2012-11-15 13:14 MySobelFilter\Debug\SobelFilter_kernels.cu.obj
文件 65 2012-11-15 13:14 MySobelFilter\Debug\mt.dep
文件 722783 2012-11-15 13:14 MySobelFilter\Debug\rendercheck_gl.obj
文件 683008 2012-11-15 13:14 MySobelFilter\Debug\vc80.idb
文件 233472 2012-11-15 13:14 MySobelFilter\Debug\vc80.pdb
文件 12171 2013-01-07 14:52 MySobelFilter\SobelFilter.cpp
文件 9495 2013-01-07 14:53 MySobelFilter\SobelFilter_kernels.cu
文件 637 2013-01-02 12:50 MySobelFilter\SobelFilter_kernels.h
文件 9849856 2012-11-15 13:43 MySobelFilter\SobelFilter_vs2005.ncb
文件 19456 2012-11-15 13:43 MySobelFilter\SobelFilter_vs2005.suo
文件 2657 2012-12-06 08:57 MySobelFilter\SobelFilter_vs2005.vcproj.HI7QXQWSECZ1E3V.Administrator.user
文件 31281152 2013-01-07 14:53 MySobelFilter\SobelFilter_vs2010.sdf
文件 1249 2012-01-26 04:38 MySobelFilter\SobelFilter_vs2010.sln
文件 33792 2013-01-07 14:53 MySobelFilter\SobelFilter_vs2010.suo
文件 12644 2013-01-02 13:34 MySobelFilter\SobelFilter_vs2010.vcxproj
文件 143 2012-12-11 13:13 MySobelFilter\SobelFilter_vs2010.vcxproj.user
目录 0 2013-01-07 14:54 MySobelFilter\Win32\
目录 0 2013-01-07 14:54 MySobelFilter\Win32\Debug\
文件 25660 2013-01-07 14:50 MySobelFilter\Win32\Debug\CL.read.1.tlog
文件 682 2013-01-07 14:50 MySobelFilter\Win32\Debug\CL.write.1.tlog
文件 2647 2013-01-07 09:29 MySobelFilter\Win32\Debug\SobelFilter.Build.CppClean.log
文件 381 2013-01-07 14:50 MySobelFilter\Win32\Debug\SobelFilter.exe.intermediate.manifest
文件 117 2013-01-07 14:50 MySobelFilter\Win32\Debug\SobelFilter.lastbuildstate
文件 213695 2013-01-07 14:50 MySobelFilter\Win32\Debug\SobelFilter.obj
............此处省略61个文件信息
- 上一篇:Timdesigner9.2
- 下一篇:中国SHP44M含县级省级市级地图及铁路公路
相关资源
- tensorflow_gpu-1.6.0-cp36-cp36m-win_amd64.zip
- 优秀的图像去噪算法合集
- 响应式网站模板自适应带后台
- 自适应预测,滤波和控制
- NVIDIA TURING GPU 架构白皮书.pdf
- tensorflow_gpu-1.12.0-cp37
- 自适应光学周仁忠主编;国防工业出
- 华为8245双模千兆自适应固件V1R006C00
- 自适应滤波器原理-Simon Haykin 包括所有
- GPU Pro 2.pdf
- 低照度图像增强
- H39800响应式家居建材家具类网站织梦
- imx6x gpu sdk
- gpu zen: advanced rendering techniques 彩色高
- 自适应阵列处理
- Real-Time Rendering Fourth Edition
- 自适应滤波算法与实现第4版.pdf
- 响应式WORD教程资讯类网站织梦模板(
- CUDA并行程序设计 GPU编程指南[中文版
- tensorflow_gpu-1.4.0-cp35-cp35m-win_amd64.whl
- GPU Pro 360 Guide to Shadows-Wolfgang Engel-20
- cudnn-10.2-windows10-x64-v7.6.5.32.zip
- stm32 自适应滤波器
- 基于卷积神经网络的图像去噪基础篇
- NVIDIA-Linux-x86_64-418.56.runnvidia driver ,用
- tensorflow_gpu==1.14.0版本
- tensorflow_gpu-1.4.0-cp36-cp36m-win_amd64.whl
- GPU精粹3 GPU编程
- cuDnn-win10-Cuda10.0(亲测)
- GPU Pro 2~7
评论
共有 条评论