初级版使用说明书(Visual Studio)_第1页
初级版使用说明书(Visual Studio)_第2页
初级版使用说明书(Visual Studio)_第3页
初级版使用说明书(Visual Studio)_第4页
初级版使用说明书(Visual Studio)_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用说明书

目录

PPM、PGM和PBM图像处理.....................................................

YUV图像处理....................................................................

RAW图像处理...................................................................

BMP图像处理....................................................................

其它处理.........................................................................

PPM、PGM和PBM图像处理

voidOTSUBinarization(char*OTSU二值化。input是输入文件名,

input,char*output)output是输出文件名。支持P5格式的

PGM图像。

voidPPMtoBMP(char*input,char*PPM图像转为BMP图像。bpp是BMP图

output,intbpp)像的色深。

voidBMPtoPPM(char*input,char*BMP图像转PPM图像。

output)

voidPPMtoBMP1(char*input,char*PPM图像转为BMP图像。bpp是BMP图

output,intbpp)像的色深。

voidBMPtoPPMl(char*input,char*BMP图像转PPM图像。

output)

voidBMPtoPGM(char*input,char*BMP转PGMo

output)

voidBMPtoPPM2(char*input,BMP转PPMo

char*output)

voidPPMtoPGMCchar*input,char*PPM转PGMo

output)

voidBlurPPM(char*input,char*PPM图像滤波。

output)

voidBlurPGM(char*input,char*PGM图像滤波。

output)

voidOTSU二值化划分。input是输入文件名,

SegmentsOTSUBinarization(char*output是输出文件名。支持P5格式的

input,char*output)PGM图像。

voidP3PpMBlur(char*input,char*PPM图像模糊,input是输入文件名,

output)output是输出文件名。支持P3格式的

PPM图像。

unsignedchar**ReadPBM(char*读取PBM图像并返回图像数据。input

input)是要读取的PBM图像文件名。支持P4

格式的PBM图像。

voidWritePBM(unsignedchar**保存PBM图像。Input是输入的图像数

Input,char*output)据,output是输出文件名。支持P4格

式的PBM图像。

void直方图均衡化,input是输入文件名,

PGMHistogramEqualization(char*output是输出文件名。支持P5格式的

input,char*output)PGM图像。

PPMImage*ReadPPM(char*input)PPM图像读取,input是要读取的PPM

图像文件名。支持P6格式的PPM图像。

需要引入的结构体:

typedefstruct{

unsignedcharred,green,blue;

〃像素的颜色由RGB(红/绿/

蓝)表示

}PPMPixel;

typedefstruct{

unsignedintwidth,height;

//图像的宽度和高度(以像素

为单位)

PPMPixel*data;

//构成图像的像素

}PPMImage;

voidWritePPM(char*PPM图像保存,output是输出的PPM

output,PPMImage*img)图像文件名,img是输入的图像数据。

支持P6格式的PPM图像。

需要引入的结构体:

typedefstruct{

unsignedcharred,green,blue;

〃像素的颜色由RGB(红/绿/

蓝)表示

}PPMPixel;

typedefstruct{

unsignedintwidth,height;

//图像的宽度和高度(以像素

为单位)

PPMPixel*data;

//构成图像的像素

}PPMImage;

voidInvertColor(char*负滤波器,input是输入文件名,output

input,char*output)是输出文件名。支持P6格式的PPM图

像。

voidGrayFliter(char*灰度过滤器,input是输入文件名,

input,char*output)output是输出文件名。支持P6格式的

PPM图像。

voidSepiaFiIter(char*乌贼墨过滤器,input是输入文件名,

input,char*output)output是输出文件名。支持P6格式的

PPM图像。

voidAdjustSaturation(char*调整图像饱和度,input是输入文件名,

input,char*output,doublea)output是输出文件名。a是目标饱和度,

如a=30。支持P6格式的PPM图像。

voidResize(char*input,char*调整图像大小,input是输入文件名,

output,unsignedintNewWidth,output是输出文件名。NewWidth和

unsignedintNewHeight)NewHeight分别是输出图像的宽和高。

支持P6格式的PPM图像。

voidAdjustHue(char*input,char*调整图像的色调,input是输入文件名,

output,inta)output是输出文件名。a是目标色调,

如a=125。支持P6格式的PPM图像。

voidAdjustBrightness(char*调整图像亮度,input是输入文件名,

input,char*output,doublea)output是输出文件名。a是目标亮度,

如a=60。支持P6格式的PPM图像。

voidAdjustContrast(char*调整图像对比度,input是输入文件名,

input,char*output,doublea)output是输出文件名。a是目标对比度,

如a=60。支持P6格式的PPM图像。

voidAdjustBlur(char*通过sigma因子模糊图像,input是输

input,char*output,doublea)入文件名,output是输出文件名。a是

sigma因子,如a=5。支持P6格式的PPM

图像。

voidMeanGrayFilter(char*平均灰度滤波器,input是输入文件名,

input,char*output,doublea)output是输出文件名。a是平均值系数,

如a=3。支持P6格式的PPM图像。

voidPixelate(char*input,char*像素化,input是输入文件名,output

output,unsignedinta)是输出文件名。a是幅度值,如a=8。

支持P6格式的PPM图像。

voidRotate(char*input,char*旋转图像,input是输入文件名,output

output,shorta)是输出文件名。a是旋转的角度,如

a=45o支持P6格式的PPM图像。

voidGammaCorrection(char*伽马校正,input是输入文件名,output

input,char*output,doublea)是输出文件名°a是gamma数,如a=0.50

支持P6格式的PPM图像。

void生成灰度图以及RGB通道分离,input

GrayAndChannelSeparation(char*是输入的P6格式的PPM图像;

input,char*Grayoutput,char*Grayoutput是输出的灰度图文件名,

Routput,char*Goutput,char*Routput^Goutput和Boutput分别是输

Boutput)出的R、G和B通道的图像文件名,输

出都是PGM格式文件。

voidPGMBin(char*input,char*灰度图像二值化,输入是灰度图像,输

output,intthreshold)入和输出都是PGM文件,threshold是

阈值,如thresholds25。

voidBrightening(char*彩色图像增亮,输入和输出都是P6格

input,char*output,inta)式的PPM图像,a是增亮系数,如a=80o

voidGrayBrightening(char*灰度图像增亮,输入和输出都是PGM图

input,char*output,inta)像,a是增亮系数,如a=80。

voidPPMFilter(char*input,char*彩色图像滤波,输入和输出都是P6格

output)式的PPM文件。

voidPGMGrayFi1ter(char*灰度图像滤波,输入和输出都是PGM图

input,char*output)像。

voidPPMtoBMP(char*input,char*PPM图像转BMP图像,input是输入文

output)件名,。utput是输出文件名。支持P6

格式的PPM图像。

voidPGMOtsuThreshold(string大津阈值法,input是输入文件名,

input,char*output)output是输出文件名。支持P5格式的

PGM图像。

void局部大津阈值,input是输入文件名,

PGMLocalisedOtsuThreshold(stringoutput是输出文件名。支持P5格式的

input,char*output)PGM图像。

voidPGMSauvolaThreshold(string索沃拉阈值,支持P5格式的PGM图像。

input,char*output,doublea、b和c的参考值如:

a,doubleb,doublec)a=0.01,b=15,c=2250

voidPGMThreshold(string阈值法,input是输入文件名,output

input,char*output,intthresh)是输出文件名。支持P5格式的PGM图

像。thresh是阈值,如:thresh=5o

floatRepairl(char*input,char*图像修复,var是噪声方差,threshold

output,floatvar,float是阈值,nbLevels是要处理的级别数,

threshold,intnbLevels,floata)a=10o返回ISNRo

floatRepair2(char*input,char*图像修复,var是噪声方差,threshold

output,floatvar,float是阈值,nbLevels是要处理的级别数,

threshold,intnbLevels,floata)a=10o返回ISNRo

voidLowPassFi11erRepair1(char*低通滤波图像修复,a=10,b=6,

input,char*output,intnbLevels=3,size_filler是低通过滤

size_filter,floatvar,int器的大小,var是噪声方差,

nb_iterations,intnbLevels,floatnb_iterations是Landweber的迭代

a,intb)数。

voidLowPassFi1terRepair2(char*低通滤波图像修复,a=10,b=6,

input,char*output,intnbLevels=3,size_filter是低通过滤

size_filter,floatvar,int器的大小,var是噪声方差,

nb_iterations,intnbLevels,floatnb_iterations是Landweber的迭代

a,intb)数;

floatLowPassFilterRepair3(char*低通滤波图像修复,a=10,b=6,

input,char*output,intnbLevels=3,pas=l,size_filter是低

size_filter,floatvar,int通过滤器的大小,var显噪声方差,

nb_iterations,intnbLevels,intnb_iterations是Landweber的迭代

pas,floata,intb)数。返回ISNRo

voidRepairl(char*input,char*图像修复,a=0.0,M是分解的层次数,

output,intM,floata)如M=3o

voidRepair2(char*input,char*图像修复,a=0.0,M是分解的层次数,

output,intM,floata)如M=3o

voidMakeNoisel(char*制造噪声,size_filter是低通滤波器

input,char*output,int的宽度。

size_filter)

voidMakeNoise2(char*制造噪声,nb_iterations是Landweber

input,char*output,int的迭代数,pas=lo

nb_iterations,intpas)

voidMakeNoise3(char*output,int制造噪声,height是输出图像的高,

height,intwidth,floatvar)width是输出图像的宽,var是噪声方

差。

voidMakeNoise4(char*制造噪声,nb_iterations是Landweber

input,char*output,int的迭代数,pas=lo

nb_iterations,intpas)

voidImageReconstruetion(char*图像重建,支持PGM文件。参考:

input,char*output,intmaxDepth=80,threshold=50,tx=0,

maxDepth,intthreshold,intty=0o

tx,intty)

YUV图像处理

voidYUVsuperposition(char*inputl,char*YUV420叠加,Y_BLACK、

input2,char*output,intwidth,intU_BLACK和V_BLACK用于将

height,unsignedcharY_BLACK,unsignedchar扇图中的黑底变成透明,参

U_BLACK,unsignedcharVBLACK)考:Y_BLACK=16,

U_BLACK=128,

V_BLACK=128o

voidYUVsuperposition(char*inputl,char*YUV444叠加,Y_BLACK、

input2,char*output,intwidth,intU_BLACK和V_BLACK用于将

height,unsignedcharYBLACK,unsignedchar扇图中的黑芯变成透明,参

U_BLACK,unsignedcharVBLACK)考:Y_BLACK=16,

U_BLACK=128,

V_BLACK=128o

voidYUVsuperposition(char*inputl,char*yuv444p直接叠加到

input2,char*output,intwidth,intyuv420p上,不做转换,

height,unsignedcharY_BLACK,unsignedcharY_BLACK、U_BLACK和

U_BLACK,unsignedcharVBLACK)V_BLACK用于将原图中的黑

应变成透明,参考:

Y_BLACK=16,U_BLACK=128,

V_BLACK=128o

voidYUV444toYUV420(char*input,char*YUV444转YUV420,height

output,intheight,intwidth)是输入的YUV444文件的高,

width是输入的YUV444文

件的宽。

voidYUV444toYUV420(char*input,char*YUV444转YUV420,height

output,intheight,intwidth,intframes)和width是输入文件的高和

宽,frames是要输入文件中

操作的帧序号。

voidYUVsuperposition(char*inputl,char*YUV444转到YUV420上的叠

input2,char*output,intwidth,int加,Y_BLACK、U_BLACK和

height,unsignedcharYBLACK,unsignedcharV_BLACK用于将原图中的黑

U_BLACK,unsignedcharV_BLACK)应变成透明,参考:

Y_BLACK=16,U_BLACK=128,

V_BLACK=128o

voidYUVEdgeProcessingY(char*input,char*YUV边缘处理,input是输

output,intwidth,intheight,doublek)入文件名,output是输出文

件名。width和height是输

入图像的宽和高。参考:

k=0.50

voidYUVEdgeProcessingU(char*input,char*YUV边缘处理,input是输

output,intwidth,intheight,doublek)入文件名,output是输出文

件名。width和height是输

入图像的宽和高。参考:

k=0.5o

voidYUVEdgeProcessingV(char*input,char*YUV边缘处理,input是输

output,intwidth,intheight,doublek)入文件名,output是输出文

件名。width和height是输

入图像的宽和高。参考:

k=0.50

voidBMPLoadedlntoYUV(char*inputBMP,char*YUV加载BMP,inputBMP是

inputYUV,char*output,intYUVwidth,int输入的BMP图像,inputYUV

YUVheight,intdepth,boolmt)是输入的YUV图像,

inputYUV起到容器的作用,

YUVwidth和YUVheight是

输入的YUV图像的宽和高,

参考:depth=12,mt=trueo

voidYUV仅水平方向的边缘处

YUVEdgeProcessingHorizontalDirection(char*理,input是输入文件名,

input,char*output,intwidth,intoutput是输出文件名。

height,doublek)width和height是输入图

像的宽和高。参考:k=0.70

voidYUVVieoEdgeProcessing(char*YUV视频文件边缘处理,

input,char*output,intwidth,intinput是输入文件名,

height,intframe,intmax_frame)output是输出文件名。

width和height是输入图

像的宽和高,frame是要处

理的帧序号,max_frame是

最大帧序号。

voidYUVScale(char*input,char*output,int缩放yuv420图像,参考:

inputWidth,intinputHeight,intinputWidth=1280,

outputwidth,intoutputHeight)inputHeight=720,

outputWidth=128,

outputHeight=72o

voidNoiseTreatment(char*input,char*YUV噪声处理。

output,intwidth,intheight,int

TWICEwidth,intTWICEheight)

voidNoiseTreatment(char*input,char*YUV噪声处理。

output,intwidth,intheight,intframe,int

max_frame)

RAW图像处理

unsignedchar**RAWRead(char*读取RAW图像。

input,intheight,intwidth)

voidRAWWrite(unsignedchar**保存RAW图像。

input,char*output,intheight,int

width)

voidMBVQ(char*input,char*MBVQ效果,input是输入文件名,

output,intwidth,intheight)output是输出文件名。width和

height是输出图像的宽和高。

voidRAWtoPPM_red(char*RAW转为PPM后提取红色通道,参考:

input,char*output,intwidth,intwidth=4096,height=3072,

height,DebayerAlgorithmalgo)algo=NEARESTNEIGHBOUR或LINEAR。

支持RAW12格式。

需引入以下枚举:

enumDebayerA1gorithm{

NEARESTNEIGHBOUR,

LINEAR

);

voidRAWtoPPM_greenl(char*RAW转为PPM后提取绿色1通道,参

input,char*output,intwidth,int考:width=4096,height=3072,

height,DebayerA1gorithmalgo)algo=NEARESTNEIGHBOUR或LINEAR。

支持RAW12格式。

需引入以下枚举:

enumDebayerA1gorithm{

NEARESTNEIGHBOUR,

LINEAR

};

voidRAWtoPPM_green2(char*RAW转为PPM后提取绿色2通道,参

input,char*output,intwidth,int考:width=4096,height=3072,

height,DebayerAlgorithmalgo)algo=NEARESTNEIGHBOUR或LINEAR。

支持RAW12格式。

需引入以下枚举:

enumDebayerAlgorithm{

NEARESTNEIGHBOUR,

LINEAR

);

voidRAWtoPPM_blue(char*RAW转为PPM后提取蓝色通道,参考:

input,char*output,intwidth,intwidth=4096,height=3072,

height,DebayerAlgorithmalgo)algo=NEARESTNEIGHBOUR或LINEAR0

支持RAW12格式。

需引入以下枚举:

enumDebayerAlgorithm{

NEARESTNEIGHBOUR,

LINEAR

);

voidRAWtoPPM(char*input,char*RAW转为PPM,参考:width=4096,

output,intwidth,intheight=3072,

height,DebayerAlgorithmalgo)algo=NEARESTNEIGHBOUR或LINEAR。

支持RAW12格式。

需引入以下枚举:

enumDebayerA1gorithm{

NEARESTNEIGHBOUR,

LINEAR

);

voidRawPowerTransformation(char*累次变换,input是输入的RAW图像

input,char*output,intwidth,int文件名,output是输出的RAW图像文

height,intc,floatv)件名,width是输入图像的宽,height

是输入图像的高。默认c=l,v=0.60

支持RAW图像。

voidRAWAvgFi11er(char*平均滤波器,input是输入文件名,

input,char*output,intROWS,intoutput是输出文件名。ROWS是图像的

COLS,intM,floatmask[3][3])行大小,COLS是图像的列大小,M是

滤波相关参数,如M=l;mask是滤波

器模板。支持RAW图像。

参考模板:

floatmask[3][3]=

{{0.1111,0.1111,0.1111},

{0.1111,0.1111,0.1111},

{0,1111,0.1111,0.1111}};

voidRawimageinversion(char*图像反相,input是输入的RAW图像

input,char*output,intwidth,int文件名,output是输出的RAW图像文

height)件名,width是输入图像的宽,height

是输入图像的高。支持RAW图像。

void直方图均衡化,input是输入的RAW

RawHistogramEqualization(char*图像文件名,output是输出的RAW图

input,char*output,intwidth,int像文件名,width是输入图像的宽,

height)height是输入图像的高。支持RAW图

像。

voidRAW直方图均衡化,width和height

RAWHistogramEqualization(char*是输入图像的宽和高。

input,char*output,intwidth,int

height)

voidRAWMedianFilter(char*中值滤波,input是输入文件名,

input,char*output,intROWS,intoutput是输出文件名。ROWS是图像的

COLS,intM,intsequence[9])行,COLS是图像的列,M是滤波相关

参数,如M=l。支持RAW图像。

参考模板:

int

sequence[9]={0,0,0,0,0,0,0,0,0);

voidRawtoBmpl(char*input,char*RAW图像转为BMP图像,input是输

output,unsignedlongWidth,入文件名,output是输出文件名。

unsignedlongHeight)Width和Height是输入文件的宽和

高。

voidRawToBmp(char*input,char*RAW图像转为BMP图像,input是输

output,intimageWidth,int入文件名,。utput是输出文件名。支

imageHigth)持宽和高相等的图像。

voidRGBtoHSI(char*input,char*RGB模型转为HIS模型,input是输

output)入文件名,output是输出文件名。支

持24位BMP图像。

voidCyanGray(char*input,char*青色灰度图像。

output,intwidth,intheight)

voidMagentaGray(char*input,char*品红灰度图像。

output,intwidth,intheight)

voidYellowGray(char*input,char*黄色灰度图像。

output,intwidth,intheight)

voidTransfer(char*input,char*传递函数。

output,intwidth,intheight)

voidHomography(char*input1,char*单应。

input2,char*input3,char*

output,intwidth,intheight,int

newidth,intnewheight)

voidMovieEffect(char*input,char*电影效果。

output,intwidth,intheight)

voidFixedThresholdMethod(char*抖色处理,固定阈值法。

input,char*output,intwidth,int

height)

voidRandomThresholdMethod(char*抖色处理,随机阈值法。

input,char*output,intwidth,int

height)

voidDitherMatrixMethod(char*抖色处理,抖动矩阵法,默认N=2。

input,char*output,intwidth,int

height,intN)

voidNormalizedLogBufferl(char*对数变换,规范化对数。

input,char*output,intwidth,int

height)

voidNormalizedLogBuffer2(char*对数变换,规范化对数。

input,char*output,intwidth,int

height)

voidTernaryGrayLevel1(char*三值灰度。

input,char*output,intwidth,int

height)

voidTernaryGrayLevel2(char*三值灰度。

input,char*output,intwidth,int

height)

voidBestEdgeMapl(char*最佳边贴图。

input,char*output,intwidth,int

height)

voidBestEdgeMap2(char*最佳边贴图。

input,char*output,intwidth,int

height)

voidSkeletonize(char*input,char*骨架化。

output,intwidth,intheight)

voidSeparableDiffusion(char*可分离扩散。

input,char*output,intwidth,int

height)

voidDenoising(char*input1,char*去除噪声。

input2,char*output,intwidth,int

height)

voidLuminosity(char*input,char*亮度调整。

output,intwidth,intheight)

voidAverage(char*input,char*平均化。

output,intwidth,intheight)

voidMinMax(char*input,char*最小与最大。

output,intwidth,intheight)

voidShrink(char*input,char*收缩。

output,intwidth,intheight)

voidBilinearTransformation(char*双线性变换。

input,char*output,intwidth,int

height,intnewwidth,intnewheight)

voidDitherMatrixMethod(char*四级抖动,默认N=2。

input,char*output,intwidth,int

height,intN)

voidDewarpedl(char*input,char*脱蜡。a是在输出图像中检查半径是

output,intwidth,intheight,int否<=a,然后再进行扭曲,参考:

Offset,doublea,doubleb)0ffset=256,a=256.5,b=0.5。

voidDewarped2(char*input,char*脱蜡。a是在输出图像中检查半径是

output,intwidth,intheight,int否烂a,然后再进行扭曲,参考:

Offset,doublea,doubleb,double0ffset=256,a=256.5,b=0.5。

coeffx[12],doublecoeffy[12])脱蜡规范:

doublecoeffx[12]=

{1.00056776e+00,-5.68880703e-

04,-1.13998357e-03,

1.00056888e+00,-

5.65549579e-04,-1.13554790e-03,

9.99434446e-01,

5.66658513e-04,1.13110351e-

03,

9.99433341e-01,

5.67767429e-04,1.13553921e-

03);

doublecoeffy[12]={-

5.67763072e-04,1.00056888e+00,

1.13998357e-03,

5.68880703e-04,

9.99434450e-01,-1.13554790e-03,

5.65553919e-04,

9.99433341e-01,-1.13110351e-03,

-5.66658513e-04,

1.00056777e+00,1.13553921e-

03};

voidTextureSegmentationl(char*纹理分割,默认K=6,N=100o

input,char*output,intwidth,int

height,intK,intN)

voidTextureSegmentation2(char*纹理分割,默认K=6,N=100o

input,char*output,intwidth,int

height,intK,intN)

voidTextureClassification(vector纹理分类,a是要分类的图像的数量,

<string>filename,char*output,int如filename里有3个图像名称,则

width,intheight,intK,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论