精华内容
下载资源
问答
  • 图像算法库[注释完全].rar 图像算法库[注释完全].rar 图像算法库[注释完全].rar
  • Opencv相比目前的工业机器视觉上应用较多的halcon、visionpro、NIvision等机器视觉算法库,具有开源的优势,而且有志在机器视觉算法方面有深入研究的话,opencv是很好的算法学习资料。
  • TI_VLIB图像算法库

    2015-01-22 16:06:46
    TI的官方图像处理库VLIB,最新版本支持C66X系列DSP。
  • DSP图像算法库:VLIB/IMGLIB/VICPLIB/DSPLIB

    千次阅读 2017-12-21 15:29:50
    http://www.xuebuyuan.com/1611296.html 通用的算法库有:DSPLIB、IMGLIB ...针对图像具体应用的库有:VLIB、VICP Signal Processing Library 数学运算库有:IQMath、fastRTS、fastMath


    http://www.xuebuyuan.com/1611296.html



    通用的算法库有:DSPLIB、IMGLIB

    针对图像具体应用的库有:VLIB、VICP
    Signal Processing Library

    数学运算库有:IQMath、fastRTS、fastMath


    展开全文
  • 今天,偶然的机会发现了一个很好用的图像算法库ZPhotoEngine,里面的算法大部分都是实现Photoshop的,试了下,效果跟PS几乎一模一样,还有一些Camera360,美图里的算法:色温调节,高光阴影调节,曝光调节等等,感觉...
  • 一直以来,都有个想法,想要做一个属于自己的图像算法库,这个想法,在经过了几个月的努力之后,终于诞生了,这就是ZPhotoEngine算法库。 这个算法库目前包含两个模块:基础图像算法模块+滤镜模块,使用C语言实现...
    原文:图像滤镜艺术---ZPhotoEngine超级算法库

    一直以来,都有个想法,想要做一个属于自己的图像算法库,这个想法,在经过了几个月的努力之后,终于诞生了,这就是ZPhotoEngine算法库。


    这个算法库目前包含两个模块:基础图像算法模块+滤镜模块,使用C语言实现,现在免费分享给大家,可以适用于PC/Android/Ios三大平台。

    1,基础图像算法模块

    这个模块,本人以Photoshop基础算法为原形,模拟出了PS大部分的基础算法。

    为什么选择Photoshop算法?这个也是我的算法库一个优势,目前开源算法库多如牦牛,但是,能和PS媲美的,少之又少。毕竟现在从摄影照相,到工业设计等等,都在使用Photoshop,试想一下,对于一个图像特效团队来说,如果产品设计人员使用PS设计了一种图像特效,而特效团队又拥有PS的图像算法库,那么,实现这种特效岂不是SO EASY?这不单单是提高效率的问题,更是提高产品的质量,提高产能的事情!

    目前,基础算法模块都包含在ZPhotoEngine里面,其中包含了如下功能:

    1.1,基础功能

    ZPHOTO_SaturationAdjust饱和度调节

    ZPHOTO_HueAndSaturationAdjust色相 饱和度调节

    ZPHOTO_LightnessAdjust明度调节

    ZPHOTO_LinearBrightContrastAdjust线性对比度亮度调节

    ZPHOTO_NLinearBrightContrastAdjust非线性对比度亮度调节

    ZPHOTO_AutoContrastAdjust自动对比度调节

    ZPHOTO_AutoColorGradationAdjust自动色阶调节

    ZPHOTO_CurveAdjust曲线调节调节

    ZPHOTO_ColorLevelAdjust色阶调节

    ZPHOTO_Posterize色调分离

    ZPHOTO_OverExposure多度曝光

    ZPHOTO_Invert反相

    ZPHOTO_HistagramEqualize色调均化

    ZPHOTO_Desaturate去色

    ZPHOTO_Blackwhite黑白

    ZPHOTO_Threshold阈值

    ZPHOTO_FastGaussFilter高斯模糊

    ZPHOTO_HighPass高反差保留

    ZPHOTO_USM USM锐化

    ZPHOTO_FindEdges查找边缘

    ZPHOTO_ChannelMixProcess通道混合器

    ZPHOTO_Fragment  碎片                             

    ZPHOTO_MotionBlur  运动模糊                         

    ZPHOTO_SurfaceBlur  表面模糊       

    ZPHOTO_RadialBlur旋转模糊

    ZPHOTO_ZoomBlur缩放模糊

    ZPHOTO_Relief浮雕

    ZPHOTO_Mean平均

    ZPHOTO_Mosaic马赛克

    ZPHOTO_ColorBalance色彩平衡

    ZPHOTO_Diffusion扩散                 

    1.2,扩展功能

    ZPHOTO_ColorTemperatureAdjust色温调节

    ZPHOTO_ShadowAdjust阴影调节

    ZPHOTO_HighlightAdjust高光调节

    ZPHOTO_ExposureAdjust曝光调节

    ZPHOTO_FastMeanFilter均值模糊

    ZPHOTO_LSNBlur LSN模糊

    ZPHOTO_SobelFilter Sobel边缘检测

    ZPHOTO_ImageTransformation图像变换(缩放,旋转,镜像,翻转,仿射变换)

    ZPHOTO_RGBA2BGRA 图像RGBA转BGRA(Android定制)

    ZPHOTO_BGRA2RGBA 图像BGRA转RGBA(Android定制)

    1.3,图层混合算法

    ZPHOTO_ImageBlendEffect双图层混合接口

    ZPHOTO_ModeDarken变暗图层混合模式

    ZPHOTO_ModeMultiply正片叠底图层混合模式

    ZPHOTO_ModeColorBurn颜色加深图层混合模式

    ZPHOTO_ModeLinearBurn线性渐变图层混合模式

    ZPHOTO_ModeDarkness深色图层混合模式

    ZPHOTO_ModeLighten变亮图层混合模式

    ZPHOTO_ModeScreen滤色图层混合模式

    ZPHOTO_ModeColorDodge颜色减淡图层混合模式

    ZPHOTO_ModeColorLinearDodge颜色线性减淡图层混合模式

    ZPHOTO_ModeColorDodge浅色图层混合模式

    ZPHOTO_ModeOverlay叠加图层混合模式

    ZPHOTO_ModeSoftLight柔光图层混合模式

    ZPHOTO_ModeHardLight强光图层混合模式

    ZPHOTO_ModeVividLight亮光图层混合模式

    ZPHOTO_ModeLinearLight线性光图层混合模式

    ZPHOTO_ModePinLight点光图层混合模式

    ZPHOTO_ModeSolidColorMixing实色图层混合模式

    ZPHOTO_ModeDifference差值图层混合模式

    ZPHOTO_ModeExclusion排除图层混合模式

    ZPHOTO_ModeSubtraction减去图层混合模式

    ZPHOTO_ModeDivide划分图层混合模式

    ZPHOTO_ModeDesaturate去色模式

    ZPHOTO_ModeColorInvert反相模式

    1.4,颜色空间转换

    包含RGB与YUV、YCbCr、XYZ、HSL、HSV、CMYK、YDbDr、YIQ、LAB等颜色空间的相互转换接口

    2,滤镜模块ZEffectEngine

    滤镜模块ZEffectEngine,也是我们算法库的一个特色。目前市面上的滤镜特效可谓是层出不穷,以Instagram/Camera360/美图秀秀+美颜相机等为代表,他们的滤镜几乎涵盖了我们的日常生活使用的一大半,而我们的ZEffectEngine,主要是参考借鉴他们的特效,取长补短,实现了差不多上百款滤镜,这些滤镜算法不仅效果不错,而且速度快,调用简单,极大方便了图像应用app的开发。

    现在主要包含的滤镜如下:

    //模拟实现Instagram滤镜//

    FILTER_IDA_NONE           

    FILTER_IDA_1977           

    FILTER_IDA_INKWELL        

    FILTER_IDA_KELVIN         

    FILTER_IDA_NASHVILLE      

    FILTER_IDA_VALENCIA       

    FILTER_IDA_XPROII         

    FILTER_IDA_BRANNAN        

    FILTER_IDA_WALDEN         

    FILTER_IDA_ADEN           

    FILTER_IDA_ASHBY          

    FILTER_IDA_BROOKLYN       

    FILTER_IDA_CHARMES        

    FILTER_IDA_CLARENDON      

    FILTER_IDA_CREMA          

    FILTER_IDA_DOGPACH        

    FILTER_IDA_GINGHAM        

    FILTER_IDA_GINZA          

    FILTER_IDA_HEFE           

    FILTER_IDA_HELENA         

    FILTER_IDA_JUNO           

    FILTER_IDA_LARK           

    FILTER_IDA_LUDWIG         

    FILTER_IDA_MAVEN          

    FILTER_IDA_MOON           

    FILTER_IDA_REYES          

    FILTER_IDA_SKYLINE        

    FILTER_IDA_SLUMBER        

    FILTER_IDA_STINSON        

    FILTER_IDA_VESPER         

    //模拟实现美图滤镜//

    FILTER_IDB_WARMER                                       //一键美颜_暖暖

    FILTER_IDB_CLEAR                                        //一键美颜_清晰

    FILTER_IDB_WHITESKINNED                                 //一键美颜_白皙

    FILTER_IDB_COOL                                         //一键美颜_冷艳

    FILTER_IDB_ELEGANT                                      //LOMO_淡雅

    FILTER_IDB_ANCIENT                                      //LOMO_复古

    FILTER_IDB_GETE                                         //LOMO_哥特风

    FILTER_IDB_BRONZE                                       //LOMO_古铜色

    FILTER_IDB_LAKECOLOR                                    //LOMO_湖水

    FILTER_IDB_SLLY                                         //LOMO_深蓝泪雨

    FILTER_IDB_SLIVER                                       //格调_银色

    FILTER_IDB_FILM                                         //格调_胶片

    FILTER_IDB_SUNNY                                        //格调_丽日

    FILTER_IDB_WWOZ                                         //格调_绿野仙踪

    FILTER_IDB_LOVERS                                       //格调_迷情

    FILTER_IDB_LATTE                                        //格调_拿铁

    FILTER_IDB_JAPANESE                                     //格调_日系

    FILTER_IDB_SANDGLASS                                    //格调_沙漏

    FILTER_IDB_AFTEA                                        //格调_午茶

    FILTER_IDB_SHEEPSCROLL                                  //格调_羊皮卷

    FILTER_IDB_PICNIC                                       //格调_野餐

    FILTER_IDB_ICESPIRIT                                    //美颜_冰灵

    FILTER_IDB_REFINED                                      //美颜_典雅

    FILTER_IDB_BLUESTYLE                                    //美颜_蓝调

    FILTER_IDB_LOLITA                                       //美颜_萝莉

    FILTER_IDB_LKK                                          //美颜_洛可可

    FILTER_IDB_NUANHUANG                                    //美颜_暖黄

    FILTER_IDB_RCOOL                                        //美颜_清凉

    FILTER_IDB_JSTYLE                                       //美颜_日系人像

    FILTER_IDB_SOFTLIGHT                                    //美颜_柔光

    FILTER_IDB_TIANMEI                                      //美颜_甜美可人

    FILTER_IDB_WEIMEI                                       //美颜_唯美

    FILTER_IDB_PURPLEDREAM                                  //美颜_紫色幻想

    FILTER_IDB_FOOD                                         //智能_美食          

    //模拟实现Camera360滤镜效果//

    FILTER_IDC_MOVIE                                        //LOMO_电影

    FILTER_IDC_MAPLELEAF                                    //LOMO_枫叶

    FILTER_IDC_COOLFLAME                                    //LOMO_冷焰

    FILTER_IDC_WARMAUTUMN                                   //LOMO_暖秋

    FILTER_IDC_CYAN                                         //LOMO_青色

    FILTER_IDC_ZEAL                                         //LOMO_热情

    FILTER_IDC_FASHION                                      //LOMO_时尚

    FILTER_IDC_EKTAR                                        //弗莱胶片 -- Ektar

    FILTER_IDC_GOLD                                         //弗莱胶片 -- Gold

    FILTER_IDC_VISTA                                        //弗莱胶片 -- Vista

    FILTER_IDC_XTAR                                         //弗莱胶片 -- Xtra

    FILTER_IDC_RUDDY                                        //魔法美肤 -- 红润

    FILTER_IDC_SUNSHINE                                     //魔法美肤 -- 暖暖阳光

    FILTER_IDC_FRESH                                        //魔法美肤 -- 清新丽人

    FILTER_IDC_SWEET                                        //魔法美肤 -- 甜美可人

    FILTER_IDC_BLACKWHITE                                   //魔法美肤 -- 艺术黑白

    FILTER_IDC_WHITENING                                    //魔法美肤 -- 自然美白

    FILTER_IDC_JPELEGANT                                    //日系 -- 淡雅

    FILTER_IDC_JPJELLY                                      //日系 -- 果冻

    FILTER_IDC_JPFRESH                                      //日系 -- 清新

    FILTER_IDC_JPSWEET                                      //日系 -- 甜美

    FILTER_IDC_JPAESTHETICISM                               //日系 -- 唯美

    FILTER_IDC_JPWARM                                       //日系 -- 温暖      

    //其他滤镜效果//

    FILTER_IDD_CARTOON                                      //卡通

    FILTER_IDD_DARK                                         //暗调

    FILTER_IDD_GLOW                                         //Glow

    FILTER_IDD_LOMO                                         //LOMO

    FILTER_IDD_NEON                                         //霓虹

    FILTER_IDD_OILPAINT                                     //油画

    FILTER_IDD_PUNCH                                        //冲印

    FILTER_IDD_REMINISCENT                                  //怀旧

    FILTER_IDD_SKETCH                                       //素描

    FILTER_IDD_GRAPHIC                                      //连环画

    FILTER_IDD_ABAOSE                                       //阿宝色

    具体效果,简单分享几个:


    原图


    Instagram 1977滤镜效果


    Instagram Kelvin滤镜效果


    Instagram Nashville滤镜效果


    Camera360  电影 滤镜效果


    美图秀秀 紫色幻想 滤镜效果

    以上就是目前ZPhotoEngine的主要功能,未来我们还将实现美颜等模块,来跟大家分享一下!

    最后,我给个下载连接:

    PC版DEMO下载连接:点击打开链接

    ZPhotoEngine库下载连接(包含PC版+Android版):点击打开链接

    注意:接口说明文档包含在下载连接中,大家有兴趣的可以根据说明文档来调用,实现自己的美图秀秀和PS!



    展开全文
  • 第一次上传资料,如有不妥之处,还请各位大侠原谅! 这是一些常用的图像处理算法,更详细的资源正在整理中。
  • 本章节介绍一款由本人开发的图像基础处理算法库---ZPHOTOENGINE,ZPHOTOENGINE算法库包含了众多Photoshop功能的模拟实现,同时提供了上百款经典滤镜特效,本节通过示例讲解,教会大家如何使用这个算法库进行快速算法...

            本章节介绍一款由本人开发的图像基础处理算法库---ZPHOTOENGINE,ZPHOTOENGINE算法库包含了众多Photoshop功能的模拟实现,同时提供了上百款经典滤镜特效,本节通过示例讲解,教会大家如何使用这个算法库进行快速算法开发。

    ZPHOTOENGINE简介

            ZPHOTOENGINE算法库是单纯由C语言开发的一款图像算法引擎库,主要包含三个方面:

            ①图像读写绘制模块

            图像读写部分,基于STB开源代码进行修改,可以读写JPG/PNG/BMP三种常用图像格式,接口简单,方便易用;

            图像绘制部分,实现了点绘制/线条绘制/三角形绘制/矩形绘制/圆形和椭圆绘制/多边形绘制等基本绘制功能,如下图所示:

            ②基础图像算法模块

            该模块实现了Photoshop中大部分的基础图像算法功能,而且效果与PS的效果基本一致或者近似,包括图层混合/图像亮度对比度/图像饱和度/图像色彩平衡/图像曲线调节/图像色阶/自动对比度/阈值/表面模糊/高斯模糊/高反差等等以及一些常用的边缘检测算子,包边滤波器等,详细说明可参考本人GITHUB,地址如下:ZPhotoEngine

            ③图像滤镜模块

            该模块实现了上百款图像滤镜特效,包含Instagram滤镜,美图秀秀,Camera360等类似滤镜等,并支持了LUT自定以滤镜功能,方便用户自定义各类LUT滤镜;

            举例如下图所示:

            ZPHOTOENGINE算法库WINDOWS 动态库大小不足400K,如下图所示,可以满足各类以Photoshop为依托的滤镜设计开发需求,极大的缩短了滤镜开发流程,提高了滤镜开发效率。

        ZPHOTOENGINE算法库包含基础图像算法功能列表如下:

    //图层混合模式
    const int BLEND_MODE_DARKEN                                       =  1;
    const int BLEND_MODE_MULTIPLY                                     =  2;
    const int BLEND_MODE_COLORBURN                                    =  3;
    const int BLEND_MODE_LINEARBURN                                   =  4;
    const int BLEND_MODE_DARKNESS                                     =  5;
    const int BLEND_MODE_LIGHTEN                                      =  6;
    const int BLEND_MODE_SCREEN                                       =  7;
    const int BLEND_MODE_COLORDODGE                                   =  8;
    const int BLEND_MODE_COLORLINEARDODGE                             =  9;
    const int BLEND_MODE_LIGHTCOLOR                                   =  10;
    const int BLEND_MODE_OVERLAY                                      =  11;
    const int BLEND_MODE_SOFTLIGHT                                    =  12;
    const int BLEND_MODE_HARDLIGHT                                    =  13;
    const int BLEND_MODE_VIVIDLIGHT                                   =  14;
    const int BLEND_MODE_LINEARLIGHT                                  =  15;
    const int BLEND_MODE_PINLIGHT                                     =  16;
    const int BLEND_MODE_SOLIDCOLORMIXING                             =  17;
    const int BLEND_MODE_DIFFERENCE                                   =  18;
    const int BLEND_MODE_EXCLUSION                                    =  19;
    const int BLEND_MODE_SUBTRACTION                                  =  20;
    const int BLEND_MODE_DIVIDE                                       =  21;
    ///
    
        	//基础功能
    	/*************************************************
    	Function:    ZPHOTO_Saturation
    	Description: 饱和度调节.
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     saturation-饱和度值,范围[0,512]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation);
    	/*************************************************
    	Function:    ZPHOTO_Posterize
    	Description: 色调分离.
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     clusterNum-色调数,范围[2,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum);
    	/*************************************************
    	Function:    ZPHOTO_OverExposure
    	Description: 过度曝光.
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride);//过度曝光
    	/*************************************************
    	Function:    ZPHOTO_Lightness    
    	Description: 明度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     lightness-明度值,范围[-100,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness);//明度调节
    	/*************************************************
    	Function:    ZPHOTO_Invert
    	Description: 反相
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride);//反相
    	/*************************************************
    	Function:    ZPHOTO_HueAndSaturation
    	Description: 色相饱和度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     hue-色相值,范围[-180,180]
    		     saturation-饱和度值,范围为[-100,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation);//色相饱和度调节
    	/*************************************************
    	Function:    ZPHOTO_HistagramEqualize
    	Description: 色调均化
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride);//色调均化
    	/*************************************************
    	Function:    ZPHOTO_Desaturate
    	Description: 去色
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     ratio-去色程度,[0-100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio);//去色
       /*************************************************
    	Function:    ZPHOTO_Curve
    	Description: 曲线调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     destChannel-通道选择,Gray通道-0,R通道-1,G通道-2,B通道-3
    		     knotsPos-三个点XY坐标数组:起始点+中间点+末尾点,三个点控制一条spline亮度曲线
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]);
    
    	/*************************************************
    	Function:    ZPHOTO_CurveLevel
    	Description: 色阶调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     destChannel-通道选择,Gray通道-0,R通道-1,G通道-2,B通道-3
    		     inputLeftLimit-输入最小值,范围[0,255]
    		     inputMiddle-输入中间值,范围[0,9.99]
    		     inputRightLimit-输入最大值,范围[0,255]
    		     outputLeftLimit-输出最小值,范围[0,255]
    		     outputRightLimit-输出最大值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit);//色阶调整
    	/*************************************************
    	Function:    ZPHOTO_NLinearBrightContrastAdjust
    	Description: 线性亮度对比度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     brightness-亮度值,范围[-255,255]
    		     contrast-对比度值,范围[-100,100]
    		     threshold-调节阈值,范围[0,255],默认值为128
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold);//非线性亮度对比度调整
    	/*************************************************
    	Function:    ZPHOTO_LinearBrightContrast
    	Description: 非线性亮度对比度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     brightness-亮度值,范围[-100,100]
    		     contrast-对比度值,范围[-100,100]
    		     threshold-调节阈值,范围[0,255],默认值为128
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold);//线性亮度对比度调整
    	/*************************************************
    	Function:    ZPHOTO_Blackwhite
    	Description: 黑白
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     kRed-红色比例,范围[-200,300]
    		     kGreen-绿色比例,范围[-200,300]
    		     kBlue-蓝色比例,范围[-200,300]
    		     kYellow-黄色比例,范围[-200,300]
    		     kCyan-青色比例,范围[-200,300]
    		     kMagenta-洋红比例,范围[-200,300]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta);//黑白
    
    	/*************************************************
    	Function:    ZPHOTO_AutoContrast
    	Description: 自动对比度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride);//自动对比度
    	/*************************************************
    	Function:    ZPHOTO_AutoContrastAdjustWithParameters
    	Description: 参数限制的自动对比度调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     shadowCorrectRatio-阴影修剪比例,范围[0.00,9.99]
    		     highlightCorrectRatio-高光修剪比例,范围[0.00,9.99]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//含参自动对比度
    	/*************************************************
    	Function:    ZPHOTO_AutoColorGradation
    	Description: 自动色阶调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride);//自动色阶
    	/*************************************************
    	Function:    ZPHOTO_AutoColorGradationAdjustWithParameters
    	Description: 参数限制的自动色阶调节
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     shadowCorrectRatio-阴影修剪比例,范围[0.00,9.99]
    		     highlightCorrectRatio-高光修剪比例,范围[0.00,9.99]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//含参自动色阶
    	/*************************************************
    	Function:    ZPHOTO_Threshold
    	Description: 阈值(二值化)
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     threshold-阈值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold);//阈值
    	/*************************************************
    	Function:    ZPHOTO_ChannelMixProcess
    	Description: 通道混合器
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后修为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     channel-Red-0,Green-1,Blue-2,Gray-3
    		     kr-Red通道比例,范围[-200,200]
    		     kg-Green通道比例,范围[-200,200]
    		     kb-Blue通道比例,范围[-200,200]
    		     N-常数调节比例,范围[-200,200]
    		     singleColor-是否单色,单色-true,彩色-false
    		     constAdjust-是否执行常数比例调节,调节-true,不调节-false
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust);
    	/*************************************************
    	Function:    ZPHOTO_FastestGaussFilter
    	Description: 极速高斯模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-高斯模糊半径,范围[0,1000]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius);//高斯滤波
    	/*************************************************
    	Function:    ZPHOTO_HighPass
    	Description: 高反差保留
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-高斯模糊半径,范围[0,1000]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius);//高反差保留
    	/*************************************************
    	Function:    ZPHOTO_USM
    	Description: USM锐化
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-高斯半径,范围为[0,1000]
    		     amount-锐化程度,范围为[0,500]
    		     threshold-锐化阈值,范围为[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold);
    	/*************************************************
    	Function:    ZPHOTO_FindEdges
    	Description: 查找边缘
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride);//查找边缘
    	/
        
        	//图层混合功能
    	/*************************************************
    	Function:    ZPHOTO_ModeDarken
    	Description: 变暗模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeDarken(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeMultiply
    	Description: 正片叠底模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeMultiply(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeColorBurn
    	Description: 颜色加深模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeLinearBurn
    	Description: 线性渐变模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeDarkness
    	Description: 深色模式
    	Input:       baseRed-输入基础像素R值,范围[0,255],执行后作为输出结果
    		     baseGreen-输入基础像素G值,范围[0,255],执行后作为输出结果
    		     baseBlue-输入基础像素B值,范围[0,255],执行后作为输出结果
    		     mixRed-输入混合像素R值,范围[0,255]
    		     mixRed-输入混合像素G值,范围[0,255]
    		     mixRed-输入混合像素B值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue);
    	/*************************************************
    	Function:    ZPHOTO_ModeLighten
    	Description: 变亮模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeLighten(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeScreen
    	Description: 滤色模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeScreen(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeColorDodge
    	Description: 颜色减淡模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeColorLinearDodge
    	Description: 颜色线性减淡模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeLightColor
    	Description: 浅色模式
    	Input:       baseRed-输入基础像素R值,范围[0,255],执行后作为输出结果
    		     baseGreen-输入基础像素G值,范围[0,255],执行后作为输出结果
    		     baseBlue-输入基础像素B值,范围[0,255],执行后作为输出结果
    		     mixRed-输入混合像素R值,范围[0,255]
    		     mixRed-输入混合像素G值,范围[0,255]
    		     mixRed-输入混合像素B值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue);
    	/*************************************************
    	Function:    ZPHOTO_ModeOverlay
    	Description: 叠加模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeOverlay(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeSoftLight
    	Description: 柔光模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeHardLight
    	Description: 强光模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeHardLight(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeVividLight
    	Description: 亮光模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeVividLight(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeLinearLight
    	Description: 线性光模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModePinLight
    	Description: 点光模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModePinLight(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeSolidColorMixing
    	Description: 实色混合模式
    	Input:       baseRed-输入基础像素R值,范围[0,255],执行后作为输出结果
    		     baseGreen-输入基础像素G值,范围[0,255],执行后作为输出结果
    		     baseBlue-输入基础像素B值,范围[0,255],执行后作为输出结果
    		     mixRed-输入混合像素R值,范围[0,255]
    		     mixRed-输入混合像素G值,范围[0,255]
    		     mixRed-输入混合像素B值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
       	EXPORT int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue);
    	/*************************************************
    	Function:    ZPHOTO_ModeDifference
    	Description: 差值模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
        	EXPORT int ZPHOTO_ModeDifference(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeExclusion
    	Description: 排除模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ModeExclusion(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeSubtraction
    	Description: 减去模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeDivide
    	Description: 划分模式
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ModeDivide(int basePixel,int mixPixel);
    	/*************************************************
    	Function:    ZPHOTO_ModeDesaturate
    	Description: 去色
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ModeDesaturate(int red,int green,int blue);
    	/*************************************************
    	Function:    ZPHOTO_ModeColorInvert
    	Description: 反相
    	Input:       basePixel-输入基础像素值,范围[0,255]
    	             mixPixel-输入混合像素值,范围[0,255]
    	Output:      无.
    	Return:      图层混合结果值,范围[0,255].
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue);
    	/*************************************************
    	Function:    ZPHOTO_ImageBlendEffect
    	Description: 图层混合
    	Input:       baseData-基础图层图像Buffer,格式为32位BGRA
    	             width-基础图像宽度
    		     height-基础图像高度
    		     stride-基础图像Stride
    		     mixData-混合图层图像Buffer,大小与基础图层图像一致
    		     blendMode-图层混合模式
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode);
        /
        
            //扩展功能
    	/*************************************************
    	Function:    ZPHOTO_ColorTemperature
    	Description: 色温调节
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity-色温强度,范围[-50,50];intensity < 0,冷色;intensity = 0,原图;intensity > 0,暖色;
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity);
    	/*************************************************
    	Function:    ZPHOTO_Shadow 
    	Description: 阴影调节
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity-阴影强度值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_Shadow(unsigned char* srcData,int width, int height, int stride, int intensity);
    	/*************************************************
    	Function:    ZPHOTO_Highlight
    	Description: 高光调节
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity--高光强度值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_Highlight(unsigned char* srcData,int width, int height, int stride, int intensity);
    	/*************************************************
    	Function:    ZPHOTO_HighlightShadowPrecise
    	Description: 高光阴影调节
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     highlight--高光强度值,取值范围为[-200,100]
    		     shadow-阴影强度值,取值范围为[-200,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow);
    	/*************************************************
    	Function:    ZPHOTO_Exposure
    	Description: 曝光调节
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity--曝光强度值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity);
    	/*************************************************
    	Function:    ZPHOTO_CalcWH
    	Description: 计算图像变换之后的宽高及变换矩阵H,该接口先于ZPHOTO_ImageTransformation调用       
    	Input:	     inputImgSize--输入图像宽高信息
    		     angle--旋转角度值,取值范围为[-360-360]
    		     scale--缩放变换值,取值大于0
    		     transform_method--变换方法:
    						transform_scale缩放变换, 取值为0;
    						transform_rotation旋转变换, 取值为1;   
    						transform_rotation_scale缩放旋转变换, 取值为2;
    						transform_affine仿射变换, 取值为3;
    						transform_mirror_h水平镜像变换, 取值为4;
    						transform_mirror_v垂直镜像变换, 取值为5;
    						transform_offset平移变换, 取值为6;
    		     outputImgSize--输出图像宽高信息
    		     H--变换矩阵数组,长度为6
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]);
    	/*************************************************
    	Function:    ZPHOTO_ImageTransformation
    	Description: 图像变换
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             srcImgSize--原始图像宽高信息数组
                         dstData--结果图像Buffer,大小由接口ZPHOTO_CalcWH获得
    		     dstImgSize--目标图像宽高信息数组
    		     H--变换矩阵数组,长度为6
    		     Interpolation_method--插值方法选择:interpolation_bilinear,interpolation_nearest
    		     Transform_method--变换方法:
    						transform_scale缩放变换, 取值为0;
    						transform_rotation旋转变换, 取值为1;   
    						transform_rotation_scale缩放旋转变换, 取值为2;
    						transform_affine仿射变换, 取值为3;
    						transform_mirror_h水平镜像变换, 取值为4;
    						transform_mirror_v垂直镜像变换, 取值为5;
    						transform_offset平移变换, 取值为6;
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method);
    	/*************************************************
    	Function:    ZPHOTO_FastMeanFilter
    	Description: 均值模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius--均值滤波半径,取值范围为[0,width / 2]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius);
    	/*************************************************
    	Function:    ZPHOTO_SobelFilter
    	Description: Sobel边缘检测
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride);
    
    	//For Android Development
    	/*************************************************
    	Function:    ZPHOTO_RGBA2BGRA
    	Description: RGBA格式转BGRA格式,主要为android设置
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride);
    	/*************************************************
    	Function:    ZPHOTO_BGRA2RGBA
    	Description: BGRA格式转RGBA格式,主要为android设置
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
            EXPORT int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride);
    
    	/*************************************************
    	Function:    ZPHOTO_Fragment
    	Description: 碎片
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride);
    	/*************************************************
    	Function:    ZPHOTO_MotionBlur
    	Description: 运动模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     angle-运动模糊角度值,取值范围为[0,360]
    		     distance-运动模糊距离值,取值范围为[0,200]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance);
    	/*************************************************
    	Function:    ZPHOTO_SurfaceBlur
    	Description: 表面模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     threshold-表面模糊阈值值,取值范围为[0,255]
    		     radius-表面模糊半径值,取值范围为[0,10]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius);
    	/*************************************************
    	Function:    ZPHOTO_RadialBlur
    	Description: 旋转模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     cenX-选钻模糊中心X坐标
    		     cenY-旋转模糊中心Y坐标
    		     amount-旋转模糊程度数量,范围为[1-100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount);
    	/*************************************************
    	Function:    ZPHOTO_ZoomBlur
    	Description: 缩放模糊
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    	             stride-原始图像的Stride
    		     cenX-缩放模糊中心X坐标
    		     cenY-缩放模糊中心Y坐标
    		     sampleRadius-缩放模糊半径,范围为[0-255]
    		     amount-缩放模糊程度数量,范围为[1-100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount);
    	/*************************************************
    	Function:    ZPHOTO_Relief
    	Description: 浮雕
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度   
    		     stride-原始图像的Stride
    		     angle-浮雕角度,范围为[0-360]
    		     amount-浮雕程度数量,范围为[0-500]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount);
    	/*************************************************
    	Function:    ZPHOTO_Mean
    	Description: 平均
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride);
    	/*************************************************
    	Function:    ZPHOTO_Mosaic
    	Description: 马赛克
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     size-Mosaic半径,范围为[0,200]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Mosaic(unsigned char* srcData, int width, int height, int stride, int size);
    	/*************************************************
    	Function:    ZPHOTO_ColorBalance
    	Description: 色彩平衡
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     cyan-青色,范围为[-100,100]
    		     magenta-洋红,范围为[-100,100]
    		     yellow-黄色,范围为[-100,100]
    		     channel-通道选择,RGB-0,R-1,G-2,B-3
    		     preserveLuminosity-true:保留明度,false:不保留明度
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity);
    	/*************************************************
    	Function:    ZPHOTO_Diffusion
    	Description: 扩散
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity-扩散程度,范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity);
    	/*************************************************
    	Function:    ZPHOTO_LSNBlur
    	Description: LSNBlur
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-LSNBlur半径,范围为[0,200]
    		     delta-[0,500]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta);
    	/*************************************************
    	Function:    ZPHOTO_MedianFilter
    	Description: 中值滤波(中间色)
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-表面模糊半径值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride,int radius);
    	/*************************************************
    	Function:    ZPHOTO_MaxFilter
    	Description: 最大值滤波(最大值)
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-表面模糊半径值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius);
    	/*************************************************
    	Function:    ZPHOTO_MinFilter
    	Description: 最小值滤波(最小值)
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     radius-表面模糊半径值,取值范围为[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius);
    	/*************************************************
    	Function:    ZPHOTO_GlowingEdges
    	Description: 照亮边缘滤镜
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     edgeSize-边缘宽度值,取值范围为[1,14]
    		     edgeLightness-边缘亮度值,取值范围为[0,20]
    		     edgeSmoothness-平滑度,取值范围为[1,15]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness);
    	
    	/*************************************************
    	Function:    ZPHOTO_ImageWarpWave
    	Description: Wave 变形
    	Input:       srcData-原始图像,格式为32位BGRA格式,执行后为结果图像
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity-变形程度,范围[0, 100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity);
    	
    	/*************************************************
    	Function:    ZPHOTO_RGBToYCbCr
    	Description: RGB转YCbCr
    	Input:       Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    		     Y-像素Y分量
    		     Cb-像素Cb分量
    		     Cr-像素Cr分量
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
    	EXPORT void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr);
    	/*************************************************
    	Function:    ZPHOTO_YCbCrToRGB
    	Description: YCbCr转RGB	   
    	Input: 	     Y-像素Y分量
    		     Cb-像素Cb分量
    		     Cr-像素Cr分量
    		     Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
            EXPORT void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue);
    	
    	/*************************************************
    	Function:    ZPHOTO_RGBToLab
    	Description: RGB转LAB	   
    	Input:       Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    		     L-像素L分量,范围[0,255]
    		     A-像素A分量,范围[0,255]
    		     B-像素B分量, 范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
            EXPORT void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B);
    	/*************************************************
    	Function:    ZPHOTO_LabToRGB
    	Description: LAB转RGB	   
    	Input:       L-像素Y分量,范围[0,255]
    		     A-像素I分量,范围[0,255]
    		     B-像素Q分量, 范围[0,255]
    		     Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
            EXPORT void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue);
    	/*************************************************
    	Function:    ZPHOTO_RGBToYUV
    	Description: RGB转YUV	   
    	Input:       Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    		     Y-像素Y分量,范围[0,255]
    		     U-像素U分量,范围[0,255]
    		     V-像素V分量, 范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
    	EXPORT void ZPHOTO_RGBToYUV(int Red, int Green, int Blue, int* Y,int* U,int* V);
    	/*************************************************
    	Function:    ZPHOTO_YUVToRGB
    	Description: YUV转RGB	   
    	Input:       Y-像素Y分量,范围[0,255]
    		     U-像素U分量,范围[0,255]
    		     V-像素V分量, 范围[0,255]
    		     Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
    	EXPORT void ZPHOTO_YUVToRGB(int Y,int U,int V, int* Red, int* Green, int* Blue);
    	/*************************************************
    	Function:    ZPHOTO_RGBToHSL
    	Description: RGB转HSL	   
    	Input:       Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    		     H-像素H分量,范围[0,255]
    		     S-像素S分量,范围[0,255]
    		     L-像素L分量, 范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
    	EXPORT void ZPHOTO_RGBToHSL (int Red, int Green, int Blue, int* h, int* s, int* l);
    	/*************************************************
    	Function:    ZPHOTO_HSLToRGB
    	Description: LAB转RGB	   
    	Input:       h-像素H分量,范围[0,255]
    		     s-像素S分量,范围[0,255]
    		     l-像素L分量, 范围[0,255]
    		     Red-像素R分量,范围[0,255]
    		     Green-像素G分量,范围[0,255]
    		     Blue-像素B分量,范围[0,255]
    	Output:      无.
    	Return:      无.
    	Others:      无.
    	*************************************************/
    	EXPORT void ZPHOTO_HSLToRGB (int h, int s, int l, int* Red, int* Green, int* Blue);
    	/*************************************************
    	Function:    ZPHOTO_GammaCorrect
    	Description: Gamma调整
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     intensity-Gamma参数,范围[1,50]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    	*************************************************/
    	EXPORT int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity);
    
            /******************************************************************************* 
            Function:    Natural Saturation 
            Description: 自然饱和度
            Input:       srcData-原始图像,格式为32位BGRA格式
                         width-原始图像宽度
                         height-原始图像高度
                         stride-原始图像的Stride
                         saturation-饱和度参数,范围[-100,100]
            Output:     无. 
            Return:     0-成功, 其他失败.
    	Others:      无.
            *******************************************************************************/
    	EXPORT int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation);
    	/*******************************************************************************
    	Function:    ZPHOTO_LUTFilter
    	Description: 512X512 LUT 滤镜
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    	             height-原始图像高度
    	             stride-原始图像的Stride
    	             Map-512X512 LUT图像,格式位32位BGRA格式
    	             ratio-滤镜程度参数,范围[0,100]
    	Output:     无.
    	Return:     0-成功, 其他失败.
    	Others:      无.
    	*******************************************************************************/
    	EXPORT int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio);
    /*************************************************
    	Function:    ZPHOTO_SmartBlurFilter
    	Description: Smart Blur
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     size-模糊半径值,取值范围为[0,100]
    		     threshold-调节阈值,范围[0,255]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    *************************************************/
    	EXPORT int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold);
    
    /*************************************************
    	Function:    ZPHOTO_AnisotropicFilter
    	Description: Anisotropic Filter
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     iter-迭代次数,取值范围为[0,100]
    		     k-扩散系数,范围[0,]
    		     lambda-[0,0.35],default 0.25
    		     offset-[0,10],default 3
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    *************************************************/
    	EXPORT int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3);
    /*************************************************
    	Function:    ZPHOTO_DisplacementFilter
    	Description: Displacement Filter
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     maskData-置换图,格式为32位BGRA格式
    		     mWidth-置换图宽度
    		     mHeight-置换图高度
    		     mStride-置换图Stride
    		     hRatio-水平比例,范围[-100,100]
    		     vRatio-垂直比例,范围[-100,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    *************************************************/
    	EXPORT int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio);
    /*************************************************
    	Function:    ZPHOTO_NoiseEffect
    	Description: Noise effect
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     ratio-噪声图的混合比例,范围[0,100]
    		     sigma-噪声方差,范围[0,]
    		     phase-噪声幅度,范围[0,]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    *************************************************/
    EXPORT int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase);
    /*************************************************
    	Function:    ZPHOTO_Bilateralfilter
    	Description: Bilateralfilter
    	Input:       srcData-原始图像,格式为32位BGRA格式
    
    	             width-原始图像宽度
    		     height-原始图像高度
    		     stride-原始图像的Stride
    		     std-调节程度,范围[0,100]
    	Output:      无.
    	Return:      0-成功,其他失败.
    	Others:      无.
    *************************************************/
    EXPORT int ZPHOTO_Bilateralfilter(unsigned char* srcData, int width, int height, int stride, double std);
    
    //IMAGE READ AND WRITE
    /************************************************************
            Function:    ZPHOTO_ImageLoad
            Description: 图像加载
            Input:       fileName-image file path,eg:"C:\\test.jpg".
                         width-原始图像宽度.
                         height-原始图像高度.
                         component-每个像素的bit数.
                         1           grey
                         2           grey, alpha
                         3           red, green, blue
                         4           red, green, blue, alpha
            Output:      width-height-component.
            Return:      图像数据,格式为32位BGRA格式.
    	Others:      无.
    ************************************************************/
    EXPORT unsigned char* ZPHOTO_ImageLoad(char* fileName, int* width, int* height, int* component);
    /************************************************************
    Function:    ZPHOTO_ImageSave
    Description: 图像保存
    Input:       fileName-image file path,eg:"C:\\test.jpg".
                 width-原始图像宽度.
                 height-原始图像高度.
                 data-要保存的图像数据,格式为32位BGRA格式.
                 format
                 0           bmp
                 1           jpg
                 2           png
                 3           tga
    Output:      无.
    Return:      0-成功,其他失败.
    Others:      无.
    ************************************************************/
    EXPORT int ZPHOTO_ImageSave(char const *fileName, int width, int height, const void* data, int format);
    
    //IMAGE DRAWING///
    /********************************************************************
    *Function: ZPHOTO_ImageDrawPoints
    Description: 用指定颜色和半径的画笔绘制指定的点.
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              points-点位数组,形如:[x0,y0,x1,y1...].
              pointNum-点个数.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
              radius-画笔半径.
    ********************************************************************/
    void ZPHOTO_ImageDrawPoints(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int points[], int pointNum, int r, int g, int b, int radius);
    
    /********************************************************************
    Function: ZPHOTO_ImageDrawHollowPoints
    Description: 用指定颜色和半径的画笔绘制指定的空心点.
    Input:
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              points-点位数组,形如:[x0,y0,x1,y1...].
              pointNum-点个数.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    	  penSize-画笔半径.
              radius-空心区域半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawHollowPoints(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int points[], int pointNum, int r, int g, int b, int penSize, int radius);
    /********************************************************************
    Function: ZPHOTO_ImageDrawLine
    Description: 用指定颜色和半径的画笔绘制线段.
    Input:
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              x1-x 线段起点X坐标.
              y1-y 线段起点Y坐标.
              x2-x 线段终点X坐标.
              y2-y 线段终点Y坐标.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    	  penSize-画笔半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawLine(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride,int x1, int y1, int x2, int y2, int r, int g, int b, int penSize);
    /********************************************************************
    Function: ZPHOTO_ImageDrawRectangle
    Description: 用指定颜色和半径的画笔绘制矩形框
    Input:
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              x-x 矩形框左上角X坐标.
              y-y 矩形框左上角Y坐标.
              w-矩形框宽度.
              h-矩形框高度.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    	  penSize-画笔半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawRectangle(unsigned char*srcData, int srcWidth, int srcHeight, int srcStride, int x, int y, int w, int h, int r, int g, int b, int penSize);
    /********************************************************************
    Function: ZPHOTO_ImageDrawTriangle
    Description: 用指定颜色和半径的画笔绘制三角形
    Input:
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              x-x 三角形第一个顶点X坐标.
              y-y 三角形第一个顶点Y坐标.
              x1-x 三角形第二个顶点X坐标.
              y1-y 三角形第二个顶点Y坐标.
              x2-x 三角形第三个顶点X坐标.
              y2-y 三角形第三个顶点Y坐标.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    	  penSize-画笔半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawTriangle(unsigned char*srcData, int srcWidth, int srcHeight, int srcStride, int x, int y, int x1, int y1, int x2, int y2, int r, int g, int b, int penSize);
    
    /********************************************************************
    Function: ZPHOTO_ImageDrawCircle
    Description: 用指定颜色和半径的画笔绘制圆形
    Input:
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              centerX-x 圆形中心点X坐标.
              centerY-y 圆形中心点Y坐标.
              radius-圆形半径.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
              penSize-画笔半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawCircle(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int centerX, int centerY, int radius, int r, int g, int b, int penSize);
    /********************************************************************
    Function: ZPHOTO_ImageDrawFillCircle
    Description: 用指定颜色画笔填充圆形
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              centerX-x 圆形中心点X坐标.
              centerY-y 圆形中心点Y坐标.
              radius-圆形半径.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawFillCircle(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int centerX, int centerY, int radius, int r, int g, int b);
    /********************************************************************
    Function: ZPHOTO_ImageDrawFillRectangle
    Description: 用指定颜色画笔填充矩形
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              x-x 矩形框左上角顶点X坐标.
              y-y 矩形框左上角顶点Y坐标.
              w-矩形宽度.
              h-矩形高度.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawFillRectangle(unsigned char*srcData, int srcWidth, int srcHeight, int srcStride, int x, int y, int w, int h, int r, int g, int b);
    /********************************************************************
    Function: ZPHOTO_ImageDrawFillTriangle
    Description: 用指定颜色画笔填充三角形
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              x-x 三角形第一个顶点X坐标.
              y-y 三角形第一个顶点Y坐标.
              x1-x 三角形第二个顶点X坐标.
              y1-y 三角形第二个顶点Y坐标.
              x2-x 三角形第三个顶点X坐标.
              y2-y 三角形第三个顶点Y坐标.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawFillTriangle(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int x, int y, int x1, int y1, int x2, int y2, int r, int g, int b);
    /********************************************************************
    Function: ZPHOTO_ImageDrawPolygon
    Description: 用指定颜色和半径的画笔绘制多边形.
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              polygonPoints-多边形顶点数组, 形如:[x0, y0, x1, y1,...].
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
              penSize-画笔半径.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawPolygon(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int polygonPoints[], int pointNum, int r, int g, int b, int penSize);
    /********************************************************************
    Function: ZPHOTO_ImageDrawFillPolygon
    Description: 用指定颜色的画笔填充多边形.
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              polygonPoints-多边形顶点数组, 形如:[x0, y0, x1, y1,...].
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawFillPolygon(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int polygonPoints[], int pointNum, int r, int g, int b);
    /********************************************************************
    Function: ZPHOTO_ImageDrawEclipse
    Description: 用指定颜色和半径的画笔绘制椭圆.
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              centerX-椭圆中心点X坐标.
              centerY-椭圆中心点Y坐标.
              A-A 椭圆长轴(A > B).
              B-B 椭圆短轴(B < A).
              penSize-画笔半径.
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawEclipse(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int centerX, int centerY,  int A, int B, int r, int g, int b, int penSize);
    /********************************************************************
    Function: ZPHOTO_ImageDrawFillEclipse
    Description: 用指定颜色的画笔填充椭圆.
    Input:  
              srcData-原始图像,格式为32位BGRA格式
              srcWidth-原始图像宽度.
              srcHeight-原始图像高度.
              srcStride-原始图像的Stride.
              centerX-椭圆中心点X坐标.
              centerY-椭圆中心点Y坐标.
              A-A 椭圆长轴(A > B).
              B-B 椭圆短轴(B < A).
              r-画笔红色分量.
              g-画笔绿色分量.
              b-画笔蓝色分量.
    Output:   无.
    Return:   无.
    Others:   无.
    ********************************************************************/
    void ZPHOTO_ImageDrawFillEclipse(unsigned char* srcData, int srcWidth, int srcHeight, int srcStride, int centerX, int centerY, int A, int B, int r, int g, int b);
    
    
    #endif

            ZPHOTOENGINE算法库包含滤镜特效列表如下:

    const int FILTER_IDA = 0; 
    const int FILTER_IDB = 100;
    const int FILTER_IDC = 200;
    const int FILTER_IDD = 300;
    
    //
    //Instagram Filter width no mask
    const int FILTER_IDA_NONE                                         = FILTER_IDA+0;
    const int FILTER_IDA_1977                                         = FILTER_IDA+1;
    const int FILTER_IDA_INKWELL                                      = FILTER_IDA+2;
    const int FILTER_IDA_KELVIN                                       = FILTER_IDA+3;
    const int FILTER_IDA_NASHVILLE                                    = FILTER_IDA+4;
    const int FILTER_IDA_VALENCIA                                     = FILTER_IDA+5;
    const int FILTER_IDA_XPROII                                       = FILTER_IDA+6;
    const int FILTER_IDA_BRANNAN                                      = FILTER_IDA+7;
    const int FILTER_IDA_WALDEN                                       = FILTER_IDA+8;
    const int FILTER_IDA_ADEN                                         = FILTER_IDA+9;//add
    const int FILTER_IDA_ASHBY                                        = FILTER_IDA+10;
    const int FILTER_IDA_BROOKLYN                                     = FILTER_IDA+11;
    const int FILTER_IDA_CHARMES                                      = FILTER_IDA+12;
    const int FILTER_IDA_CLARENDON                                    = FILTER_IDA+13;
    const int FILTER_IDA_CREMA                                        = FILTER_IDA+14;
    const int FILTER_IDA_DOGPACH                                      = FILTER_IDA+15;
    const int FILTER_IDA_GINGHAM                                      = FILTER_IDA+16;
    const int FILTER_IDA_GINZA                                        = FILTER_IDA+17;
    const int FILTER_IDA_HEFE                                         = FILTER_IDA+18;
    const int FILTER_IDA_HELENA                                       = FILTER_IDA+19;
    const int FILTER_IDA_JUNO                                         = FILTER_IDA+20;
    const int FILTER_IDA_LARK                                         = FILTER_IDA+21;
    const int FILTER_IDA_LUDWIG                                       = FILTER_IDA+22;
    const int FILTER_IDA_MAVEN                                        = FILTER_IDA+23;
    const int FILTER_IDA_MOON                                         = FILTER_IDA+24;
    const int FILTER_IDA_REYES                                        = FILTER_IDA+25;
    const int FILTER_IDA_SKYLINE                                      = FILTER_IDA+26;
    const int FILTER_IDA_SLUMBER                                      = FILTER_IDA+27;
    const int FILTER_IDA_STINSON                                      = FILTER_IDA+28;
    const int FILTER_IDA_VESPER                                       = FILTER_IDA+29;
    
    
    ///
    const int FILTER_IDB_WARMER                                       = FILTER_IDB+0;//一键美颜_暖暖*
    const int FILTER_IDB_CLEAR                                        = FILTER_IDB+1;//一键美颜_清晰
    const int FILTER_IDB_WHITESKINNED                                 = FILTER_IDB+2;//一键美颜_白皙
    const int FILTER_IDB_COOL                                         = FILTER_IDB+3;//一键美颜_冷艳
    const int FILTER_IDB_ELEGANT                                      = FILTER_IDB+4;//LOMO_淡雅
    const int FILTER_IDB_ANCIENT                                      = FILTER_IDB+5;//LOMO_复古
    const int FILTER_IDB_GETE                                         = FILTER_IDB+6;//LOMO_哥特风
    const int FILTER_IDB_BRONZE                                       = FILTER_IDB+7;//LOMO_古铜色
    const int FILTER_IDB_LAKECOLOR                                    = FILTER_IDB+8;//LOMO_湖水*
    const int FILTER_IDB_SLLY                                         = FILTER_IDB+9;//LOMO_深蓝泪雨*
    const int FILTER_IDB_SLIVER                                       = FILTER_IDB+10;//格调_银色*
    const int FILTER_IDB_FILM                                         = FILTER_IDB+11;//格调_胶片
    const int FILTER_IDB_SUNNY                                        = FILTER_IDB+12;//格调_丽日
    const int FILTER_IDB_WWOZ                                         = FILTER_IDB+13;//格调_绿野仙踪
    const int FILTER_IDB_LOVERS                                       = FILTER_IDB+14;//格调_迷情*
    const int FILTER_IDB_LATTE                                        = FILTER_IDB+15;//格调_拿铁
    const int FILTER_IDB_JAPANESE                                     = FILTER_IDB+16;//格调_日系
    const int FILTER_IDB_SANDGLASS                                    = FILTER_IDB+17;//格调_沙漏
    const int FILTER_IDB_AFTEA                                        = FILTER_IDB+18;//格调_午茶??
    const int FILTER_IDB_SHEEPSCROLL                                  = FILTER_IDB+19;//格调_羊皮卷
    const int FILTER_IDB_PICNIC                                       = FILTER_IDB+20;//格调_野餐
    const int FILTER_IDB_ICESPIRIT                                    = FILTER_IDB+21;//美颜_冰灵
    const int FILTER_IDB_REFINED                                      = FILTER_IDB+22;//美颜_典雅
    const int FILTER_IDB_BLUESTYLE                                    = FILTER_IDB+23;//美颜_蓝调
    const int FILTER_IDB_LOLITA                                       = FILTER_IDB+24;//美颜_萝莉
    const int FILTER_IDB_LKK                                          = FILTER_IDB+25;//美颜_洛可可
    const int FILTER_IDB_NUANHUANG                                    = FILTER_IDB+26;//美颜_暖黄
    const int FILTER_IDB_RCOOL                                        = FILTER_IDB+27;//美颜_清凉
    const int FILTER_IDB_JSTYLE                                       = FILTER_IDB+28;//美颜_日系人像
    const int FILTER_IDB_SOFTLIGHT                                    = FILTER_IDB+29;//美颜_柔光
    const int FILTER_IDB_TIANMEI                                      = FILTER_IDB+30;//美颜_甜美可人
    const int FILTER_IDB_WEIMEI                                       = FILTER_IDB+31;//美颜_唯美
    const int FILTER_IDB_PURPLEDREAM                                  = FILTER_IDB+32;//美颜_紫色幻想
    const int FILTER_IDB_FOOD                                         = FILTER_IDB+33;//智能_美食*
    const int FILTER_IDB_HUAYAN                                       = FILTER_IDB+34;//花颜
    
    //
    //
    const int FILTER_IDC_MOVIE                                        = FILTER_IDC+0; //LOMO_电影
    const int FILTER_IDC_MAPLELEAF                                    = FILTER_IDC+1; //LOMO_枫叶
    const int FILTER_IDC_COOLFLAME                                    = FILTER_IDC+2; //LOMO_冷焰
    const int FILTER_IDC_WARMAUTUMN                                   = FILTER_IDC+3; //LOMO_暖秋
    const int FILTER_IDC_CYAN                                         = FILTER_IDC+4; //LOMO_青色
    const int FILTER_IDC_ZEAL                                         = FILTER_IDC+5; //LOMO_热情
    const int FILTER_IDC_FASHION                                      = FILTER_IDC+6; //LOMO_时尚
    const int FILTER_IDC_EKTAR                                        = FILTER_IDC+7; //弗莱胶片 -- ektar
    const int FILTER_IDC_GOLD                                         = FILTER_IDC+8; //弗莱胶片 -- gold
    const int FILTER_IDC_VISTA                                        = FILTER_IDC+9; //弗莱胶片 -- vista
    const int FILTER_IDC_XTAR                                         = FILTER_IDC+10;//弗莱胶片 -- xtra
    const int FILTER_IDC_RUDDY                                        = FILTER_IDC+11;//魔法美肤 -- 红润
    const int FILTER_IDC_SUNSHINE                                     = FILTER_IDC+12;//魔法美肤 -- 暖暖阳光
    const int FILTER_IDC_FRESH                                        = FILTER_IDC+13;//魔法美肤 -- 清新丽人
    const int FILTER_IDC_SWEET                                        = FILTER_IDC+14;//魔法美肤 -- 甜美可人
    const int FILTER_IDC_BLACKWHITE                                   = FILTER_IDC+15;//魔法美肤 -- 艺术黑白
    const int FILTER_IDC_WHITENING                                    = FILTER_IDC+16;//魔法美肤 -- 自然美白
    const int FILTER_IDC_JPELEGANT                                    = FILTER_IDC+17;//日系 -- 淡雅
    const int FILTER_IDC_JPJELLY                                      = FILTER_IDC+18;//日系 -- 果冻
    const int FILTER_IDC_JPFRESH                                      = FILTER_IDC+19;//日系 -- 清新
    const int FILTER_IDC_JPSWEET                                      = FILTER_IDC+20;//日系 -- 甜美
    const int FILTER_IDC_JPAESTHETICISM                               = FILTER_IDC+21;//日系 -- 唯美
    const int FILTER_IDC_JPWARM                                       = FILTER_IDC+22;//日系 -- 温暖      
    
    
    
    
    //
    //
    // filter effects
    
    const int FILTER_IDD_CARTOON                                        = FILTER_IDD+0; //
    const int FILTER_IDD_DARK                                           = FILTER_IDD+1; //暗调
    const int FILTER_IDD_GLOW                                           = FILTER_IDD+2;
    const int FILTER_IDD_LOMO                                           = FILTER_IDD+3; 
    const int FILTER_IDD_NEON                                           = FILTER_IDD+4; //霓虹
    const int FILTER_IDD_OILPAINT                                       = FILTER_IDD+5; //油画
    const int FILTER_IDD_PUNCH                                          = FILTER_IDD+6; //冲印
    const int FILTER_IDD_REMINISCE                                      = FILTER_IDD+7; //怀旧
    const int FILTER_IDD_SKETCH                                         = FILTER_IDD+8; //素描
    const int FILTER_IDD_GRAPHIC                                        = FILTER_IDD+9; //连环画
    const int FILTER_IDD_ABAOSE                                         = FILTER_IDD+10; //阿宝色
    const int FILTER_IDD_LEGE                                           = FILTER_IDD+11;//乐高像素拼图
    const int FILTER_IDD_LANGMAN                                        = FILTER_IDD+12;//浪漫
    const int FILTER_IDD_LUOZHUANG                                      = FILTER_IDD+13;//裸妆
    const int FILTER_IDD_NENHONG                                        = FILTER_IDD+14;//嫩红
    const int FILTER_IDD_QINGTOU                                        = FILTER_IDD+15;//清透
    const int FILTER_IDD_ZHENBAI                                        = FILTER_IDD+16;//臻白
    const int FILTER_IDD_ZIRAN                                          = FILTER_IDD+17;//自然
    
    /
            /*******************************************************************************
    	Function:    ZPHOTO_Filter
    	Description: 滤镜
    	Input:       srcData-原始图像,格式为32位BGRA格式
    	             width-原始图像宽度
    	             height-原始图像高度
    	             stride-原始图像的Stride
    	             FilterId-滤镜ID
    	             ratio-滤镜程度参数,范围[0,100]
    	Output:     无.
    	Return:     0-成功, 其他失败.
    	Others:      无.
    	*******************************************************************************/
    	EXPORT int ZPHOTO_Filter(unsigned char* srcData, int width, int height, int stride,int FilterId, int ratio);
    

    ZPHOTOENGINE调用

            1,下载ZPHOTOENGINE引擎库,地址见本章末尾;

            2,创建新工程,按照前面章节所述方法,添加ZPhotoEngine.dll/lib到工程中,同时注意头文件引用;

            3,调用ZPHOTOENGINE,代码如下:

    
    #include "stdafx.h"
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include"f_SF_ImageDrawing.h"
    #include"f_SF_ImgBase_RW.h"
    #include"ZPhotoEngine.h"
    #include"ZEffectEngine.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	//定义输入图像路径
    	char* inputImgPath = "Test1.jpg";
    	//定义输出图像路径
    	char* outputImgPath_gray = "result.jpg";
    	//定义图像宽高信息
    	int width = 0, height = 0, component = 0, stride = 0;
    	//图像读取(得到32位bgra格式图像数据)
    	unsigned char* bgraData = ZPHOTO_ImageLoad(inputImgPath, &width, &height, &component);
    	stride = width * 4;
    	int ret = 0;
    	//其他图像处理操作(这里以32位彩色图像灰度化为例)
    
    	ret = ZPHOTO_Filter(bgraData, width, height, stride, FILTER_IDC_JPJELLY, 100);
    	printf("ret: %d",ret);
    	ret = ZPHOTO_ImageSave(outputImgPath_gray, width, height, bgraData,1);
    	printf("Done!");
    	
    	free(bgraData);
    	return 0;
    }
    

            可以看到,调用代码非常少,甚至几行代码而已,大家可以自行下载尝试,这里给出ZPHOTOENGINE算法库以及调用测试工程的代码下载方式:

            关注本人公众号“SF图像算法”,有相关下载链接即可免费下载。

    展开全文
  • AIImageCompare是图像比较算法的库。 当处理可能非常相似但不完全相同的图像时,此功能最为有用。 例如用于UIView / CALayer单元测试。 现在,它提供了一些错误功能: 最大绝对误差 不同像素数 不同像素比例...
  • ++开发的核心视频和图像处理算法库。 关于 这 : 一种 。 这 。 这 。 贡献准则 去做: 图像聚类以获得头部,躯干和其他10个关键特征的位置。 组织集群并对其进行优化,以使集群在所有图像中代表常量类 聚类质心的...
  • 工程中包含了最基本的图像处理算法,小波变换,图像插值,傅立叶变换,图像复原,图像降质模拟等,并可以对各种算法进行测试,是学习图像处理的入门资料
  • 本文讲述如何将我们的图像算法编译为Windows系统可运行的算法库,并进行正确的调用。我们将以1.2小节的图像二值化和灰度化算法为例给大家进行示例说明。

            本文讲述如何将我们的图像算法编译为Windows系统可运行的算法库,并进行正确的调用。我们将以1.2小节的图像二值化和灰度化算法为例给大家进行示例说明,本文所述为动态链接库的编译与调用。

            Windows动态链接库编译

            1,接口导出与导入

            我们在Windows应用程序中看到的DLL即动态链接库(Dynamic link library),动态库程序一般有lib文件和dll文件,lib文件是在编译时期链接的,dll文件是在运行时被调用的。当我们把我们的算法库编译成一个DLL时,如何在其他的程序中进行调用,这里就有个DLL的导入和导出概念。在Windows中,DLL需要显示的“告诉”编译器需要导出哪个接口符号,否则,编译器默认所有的符号都不导出,这样我们也就无法在其他地方调用。程序使用DLL的过程其实是引用DLL中导出函数和符号的过程,即导入过程。对于从其他DLL导入的符号,需要使用“_declspec(dllimport)”显示声明某个符号作为导入符号。说的通俗一点,Windows编译器定义如下两种导入导出方式:

            a. _declspec(dllexport)表示该符号是从本DLL导出的符号
            b. _declspec(dllimport)表示该符号是从别的DLL中导入的

            我们将上述两个关键字写出一个宏定义:

    #ifdef _MSC_VER
    #ifdef __cplusplus
    #define EXPORT extern "C" _declspec(dllexport)
    #else
    #define EXPORT __declspec(dllexport)
    #endif
    #endif

            如果上面的东西你看不明白,那请记住一点,对于定义的一个接口,只需要在它的前面添加上面这个EXPORT ,那么这个接口即被导出,也就是我们就可以在其他程序中调用包含该接口的动态库,代码举例如下:

    #ifdef _MSC_VER
    #ifdef __cplusplus
    #define EXPORT extern "C" _declspec(dllexport)
    #else
    #define EXPORT __declspec(dllexport)
    #endif
    #endif
    
    EXPORT  int A();//A接口被导出

            2,动态链接库DLL编译

            我们打开1.2小节中的图像二值化和灰度化代码工程,界面如下:

             2.1 点击Trent_ImageRWDemo工程,右键-属性打开:

            其中:

                    ①Configuration:Release   可以选择Release/Debug,表示编译的是Release版本算法库或者Debug版本算法库;

                    ②v100表示所用平台,这里用的是VS2010,所以对应的是v100,如果是2015,对应为v140;

                    ③Configuration Type:Application   这一句表示当前为可执行程序,我们需要将这个地方修改为动态链接库DLL选项,如下图所示:

                       ④修改完后,我们还可以修改算法库DLL输出路径:Output Directory,如果不改,则表示选择默认路径。

                       ⑤点击确定按钮完成配置;

            2.2 按照前文所述接口导出方法,对灰度化和二值化接口添加宏定义DLL_EXPORTS,我们定义一个基础头文件f_Commen.h,代码如下:

    #ifndef  __COMMEN__
    #define  __COMMEN__
    
    #ifdef _MSC_VER
    #ifdef __cplusplus
    #define EXPORT extern "C" _declspec(dllexport)
    #else
    #define EXPORT __declspec(dllexport)
    #endif
    #endif
    
    
    #endif

           在f_Binary.h和f_Gray.h文件中,对所有接口添加EXPORT_PUBLIC宏定义:

    #ifndef  __TRENT_GRAY__
    #define  __TRENT_GRAY__
    
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #define MIN2(a, b) ((a) < (b) ? (a) : (b))
    #define MAX2(a, b) ((a) > (b) ? (a) : (b))
    #define CLIP3(x, a, b) MIN2(MAX2(a,x), b)
    #include"f_Commen.h"
    
    
    EXPORT int f_GrayIntensity(unsigned char* srcData, int width, int height, int stride);
    EXPORT int f_Gray(unsigned char* srcData, int width, int height, int stride);
    EXPORT int f_GrayPhotoshop(unsigned char* srcData, int width, int height, int stride);
    #endif
    #ifndef  __TRENT_BINARY__
    #define  __TRENT_BINARY__
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include"f_Commen.h"
    #define MIN2(a, b) ((a) < (b) ? (a) : (b))
    #define MAX2(a, b) ((a) > (b) ? (a) : (b))
    #define CLIP3(x, a, b) MIN2(MAX2(a,x), b)
    
    EXPORT int f_Binary(unsigned char* srcData, int width, int height, int stride, int Threshold);
    #endif

             即完成接口导出配置;

             实际上,我们工程中的图像读写头文件f_SF_ImgBase_RW.h中,已经使用了这个EXPORT的宏定义,为的就是方便大家调用读写接口。

            2.3 编译工程,就会在默认路径下生成对应dll和lib文件,如下图所示:

            我们新建文件夹命名为DLL文件夹,将Trent_ImageRWDemo.dll/lib两个文件拷贝到DLL文件夹中,同时,拷贝f_SF_ImgBase_RW.h/f_Binary.h/f_Gray.h/f_Commen.h四个头文件,这四个头文件包含了我们需要调用的图像读写,灰度化和二值化的相关接口。

            3,动态链接库DLL调用

            3.1新建一个C++测试工程命名为DllTest,如下图所示:

            3.2 将DLL文件夹拷贝到DLLTest工程的路径下,将dll和lib库拷贝到DLLTest的工程路径下,打开DLLTest工程右键属性页,在VC++ Directories页面下将Include Directories 路径修改为DLL文件夹路径,将Library Directories路径修改为DLLTest工程路径,如下图所示,点击确定,注意,我们修改的是Release版,大家可以对应选择Release/Debug;

            3.3 在属性页面中选择Linker-Input,在对应页面中将Additional Dependencies选项中添加我们的动态库lib,如下所示,点击确定;

            3.4 在DllTest工程中添加DLL路径下的头文件,如下图所示:

            3.5 完成上面的配置之后,我们的DLL库就导入好了,下面我们在main函数里写库的调用代码,在写之前记得先引用头文件,代码如下:

    // DllTest.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include"DLL\f_Commen.h"
    #include"DLL\f_Gray.h"
    #include"DLL\f_Binary.h"
    #include"DLL\f_SF_ImgBase_RW.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	//定义输入图像路径
    	char* inputImgPath = "Test.png";
    	//定义输出图像路径
    	char* outputImgPath_gray = "result.jpg";
    	//定义图像宽高信息
    	int width = 0, height = 0, component = 0, stride = 0;
    	//图像读取(得到32位bgra格式图像数据)
    	unsigned char* bgraData = Trent_ImgBase_ImageLoad(inputImgPath, &width, &height, &component);
    	stride = width * 4;
    	int ret = 0;
    	//其他图像处理操作(这里以32位彩色图像灰度化为例)
    	//IMAGE PROCESS/
    	彩色图像灰度化(明度公式)
    	//ret = f_GrayIntensity(bgraData, width, height, stride);
    	//ret = Trent_ImgBase_ImageSave(outputImgPath_gray, width, height, bgraData, JPG);
    	彩色图像灰度化(视觉颜色公式)
    	//ret = f_Gray(bgraData, width, height, stride);
    	//ret = Trent_ImgBase_ImageSave(outputImgPath_gray, width, height, bgraData, JPG);
    	彩色图像灰度化(Photoshop去色公式)
    	//ret = f_GrayPhotoshop(bgraData, width, height, stride);
    	//ret = Trent_ImgBase_ImageSave(outputImgPath_gray, width, height, bgraData, JPG);
    	彩色图像二值化(黑白二值)
    	int threshold = 128;
    	ret = f_Binary(bgraData, width, height, stride,threshold);
    	ret = Trent_ImgBase_ImageSave(outputImgPath_gray, width, height, bgraData, JPG);
    	printf("Done!");
    	
    	free(bgraData);
    	return 0;
    }
    
    

            运行代码,效果图如下:

    上面的过程就是Windows动态链接库DLL的编译与调用过程,本人只是选取了其中的一种方式来给大家讲解,实际上不同方式之间大同小异;

            除了动态链接库之外,另一种常用的就是静态链接库.a文件的编译与调用,实际上方法与此类似,下一小节详细介绍!

            最后,给出本文所有代码完整工程的下载方式:

            关注本人公众号“SF图像算法”,有相关下载链接即可免费下载。

    展开全文
  • 本文讲述如何将我们的图像算法编译为Windows系统可运行的算法库,并进行正确的调用。我们将以1.2小节的图像二值化和灰度化算法为例给大家进行示例说明,本文所述为静态链接库的编译与调用。
  • 使用算法调整图像大小的 Javascript 库。 一年前,作为我在 InMobi 为期两周的训练营的一部分,创建了这个。 在适当的许可下开源。 该项目包含两部分: Seam Carving Javascript 库 :您可以使用它来调整任何给定...
  • 因为我们研究开发出图像算法库,总是被人问到性能如何?做了这么久,不过是人家产品上一个button. 自己竟然如此伤感起来啦。。。 言归正传,通常,我们测试算法库内存情况。大致有两种方式,一,代码里sizeof()出...
  • 算法库.zip

    2019-06-03 13:02:57
    这里包含常用算法的C/C++实现,如:递归、分治、回溯、收索、并查集与迷宫、操作系统相关算法、动态规划、堆与优先队列、高精度运算、图论、数字图像处理等等代码实现,代码中包含详细中文注释。
  • 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 顺便复习一下直角坐标系和极坐标系 ... ...
  • Morn:Morn是一个C语言的基础工具和基础算法库,包括数据结构,图像处理,音频处理,机器学习等,具有简单,通用,高效的特点
  • VLFeat是一个流行的计算机视觉算法库,重点关注局部特征(SIFT,LIOP,Harris Affine,MSER等)和图像理解(HOG,Fisher Vectors,VLAD,大规模判别学习)。 VLFeat用于快速原型的研究以及作为多个计算机视觉实验...
  • numba: python的加速工具包,对循环等函数的加速性能很高。给要优化的函数加上@jit优化器。 from numba import jit @jit def f(x, y): return x + y ...图像平移:translated = imutils.trans...
  • 因为最近有看boost库之类的文档,忽然想到boost这样一个超大的库,连图像处理的算法库都有,那么计算几何的算法库那肯定也有,于是百度和搜查文档,发现boost还真有一个计算几何算法库,就是boost.geometry,设计...
  • 本期的每周一库带来的是img_hash,一个rust下的pHash算法实现。关于pHash,一般翻译为感知哈希算法,算法通过DCT离散余弦来用固定大小矩阵(一般位8 X 8)把图像像素数...
  • 能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK,你可以创建强大且实用的条形码扫描仪软件,以满足你的业务需求。 点击下载Dynamsoft Barcode Reader最新版 我们很...
  • 背景现在越来越多应用包含一些第三方C/C++算法库, 比如图像处理, 人脸检测, 语音识别等等. 第三方提供的算法库都是C/C++动态库(.so), 不同的提供商提供的接口存在差异, 主要分为以下两种:提供Java接口和so库这种类型...
  • 陆续集成各种基础图像处理算法库,便于临时调试演示。

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 261
精华内容 104
关键字:

图像算法库