code_app/modules/imgproc/HGImgProc.h

94 lines
3.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __HGIMGPROC_H__
#define __HGIMGPROC_H__
#include "../base/HGDef.h"
#include "../base/HGBaseErr.h"
#include "HGImgProcErr.h"
#include "../base/HGImage.h"
/* 最近邻插值 */
#define HGIMGPROC_INTERPOTYPE_NN 1L
/* 双线性插值 */
#define HGIMGPROC_INTERPOTYPE_LINEAR 2L
/* 自动裁剪参数 */
typedef struct
{
HGBool convex; /* 黑底填充时的填充方式, true为凸多边形填充false为凹多边形填充默认true */
HGBool fillColor; /* 黑底填充时采用自适应色彩填充false为白色填充true为自适应文稿底色填充默认false */
HGDouble threshold; /* 二值化阈值,取值范围(0, 255)默认40 */
HGInt noise; /* 除噪像素能够消除noise宽度的背景竖条纹干扰默认8 */
HGInt indent; /* 轮廓缩进裁剪、纠偏或者黑底填充时对探索到的纸张轮廓进行缩进indent像素默认5 */
HGBool normalCrop; /* crop deskew fillBlank失效固定裁切采用最传统的裁切方式默认false */
HGBool dispersion; /* 是否除色散默认true */
}HGImgAutoCropParam;
/* 白底检查参数 */
typedef struct
{
HGDouble threshold; /* 默认40 */
HGInt edge; /* 默认150 */
HGInt blockSize; /* 默认10 */
HGDouble devTh; /* 默认50 */
HGDouble meanTh; /* 默认200 */
}HGImgBlankCheckParam;
/* 图像缩放
* 参数:
* 1) image: in, 源图像句柄
* 2) destImage: in, 目标图像句柄
* 3) interpolation: in, 插值方式, 参见HGIMGPROC_INTERPOTYPE_*
* 说明:
* 1) 操作的只是图像的ROI区域
* 2) 源图像和目标图像的type必须一样
* 3) 自动处理origon不一致的情况
* 4) image和destImage不能是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ResizeImage(HGImage image, HGImage destImage, HGUInt interp);
/*
* 图像色彩调整
* 1) image: in, 源图像句柄
* 2) destImage: in, 目标图像句柄
* 3) brightness: in, 亮度增加值, -255至255之间
* 4) contrast: in, 对比度增加值, -127至127之间
* 5) gamma: 伽马增加值, 0.1至5.0之间
* 说明:
* 1) 操作的只是图像的ROI区域, ROI区域的大小必须一致
* 2) 源图像和目标图像的type必须一样
* 3) 自动处理origon不一致的情况
* 4) image和destImage可以是同一个句柄
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageAdjustColors(HGImage image, HGImage destImage,
HGInt brightness, HGInt contrast, HGFloat gamma);
/*
* 图像自动裁剪
* 1) image: in, 图像句柄
* 2) autoCrop: in, 是否自动裁剪, 为HGTRUE则忽略destWidth和destHeight
* 3) deskew: in, 是否纠偏
* 4) fillBlank: in, 是否进行黑底填充
* 5) param: in, 参数, 为NULL时使用默认参数
* 6) destWidth: in, 目标图像宽度
* 7) destHeight: in, 目标图像高度
* 8) destType: in, 目标图像类型
* 9) destOrigin: in, 目标图像数据排列方式
* 10) destImage: out, 输出的目标图像句柄
* 说明:
* 1) 操作的只是image的ROI区域
* 2) 目前只支持image的类型为HGBASE_IMGTYPE_GRAY、HGBASE_IMGTYPE_RGB和HGBASE_IMGTYPE_BGR
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageAutoCrop(HGImage image, HGBool autoCrop, HGBool deskew, HGBool fillBlank, const HGImgAutoCropParam* param,
HGUInt destWidth, HGUInt destHeight, HGUInt destType, HGUInt destOrigin, HGImage* destImage);
/* 判断图像是否是空白
* 1) image: in, 图像句柄
* 2) param: in, 参数, 为NULL时使用默认参数
* 3) blank: out, HGTRUE为空白图像, HGFALSE为非空白图像
* 说明:
* 1) 操作的只是image的ROI区域
* 2) 目前只支持image的类型为HGBASE_IMGTYPE_GRAY、HGBASE_IMGTYPE_RGB和HGBASE_IMGTYPE_BGR
*/
HGEXPORT HGResult HGAPI HGImgProc_ImageBlankCheck(HGImage image, const HGImgBlankCheckParam *param, HGBool *blank);
#endif /* __HGIMGPROC_H__ */