📄 img.h
字号:
/////////////////////////////////////////////////////////////////////////////////////////
//
// Img.h
//
/////////////////////////////////////////////////////////////////////////////////////////
//
//版权所有(2002)
//Copyright(2002)
//编写者: 向世明
//Author: Xiang Shiming
//该头文件定义图像处理宏:
#ifndef __img_h_
#ifndef __IMG_H__
#define __img_h_
#define __IMG_H__
#ifdef __cplusplus
extern "C" {
#endif
////////////////////////////////////////////////////////////////////////////////
//******************* 常量定义 *********************
////////////////////////////////////////////////////////////////////////////////
////////////////////////////数学常量/////////////////////
#define PIE 3.14159265358979323846
////////////////////////////图像处理/////////////////////
/* 版本号 */
#define IMAGE_PROCESS_VERSION_1_0 1
//工业颜色模型
#define IMAGE_COLOR_RGB 0X00000000
#define IMAGE_COLOR_RGBA 0X00000001
#define IMAGE_COLOR_INDEX 0X00000002
//图像亮度处理
#define IMAGE_BRIGHTNESS_PERCENTAGE 0X00000100
#define IMAGE_BRIGHTNESS_REVERSE 0X00000101
//图像对比度调节
#define IMAGE_CONTRAST_ADJUSTMENT 0X00000200
//图像灰度处理
#define IMAGE_GRAY_COLOR_GRAYED_OUT 0X00000300
#define IMAGE_GRAY_PERCENTAGE 0X00000301
#define IMAGE_GRAY_LINEARIZE 0X00000302
#define IMAGE_GRAY_LINEAR_ROUND_OFF 0X00000303
#define IMAGE_GRAY_REVERSE 0X00000304
#define IMAGE_GRAY_HISTOGRAM_BALANCE 0X00000305
#define IMAGE_GRAY_HISTOGRAM_MATCH 0X00000306
#define IMAGE_GRAY_STATISTIC_MATCH 0X00000307
//图像着色处理
#define IMAGE_COLOR_RENDER 0X00000400
//图像曝光处理
#define IMAGE_COLOR_SOLARIZE 0X00000500
//图像区域处理
//图像模糊,
//to blur or smooth image
// 3-order--------5-order
#define IMAGE_BLUR_MEAN_SMOOTH_3 0X00010000
#define IMAGE_BLUR_MEAN_SMOOTH_5 0X00010001
//中值模糊,非线性处理
#define IMAGE_BLUR_MEDIAN_FILTER 0X00010002
//前两种方法为低通过滤,最后一种方法为中值过滤
#define IMAGE_LOWPASS_NOISE_REMOVE_3 0X00010100
#define IMAGE_LOWPASS_NOISE_REMOVE_5 0X00010101
#define IMAGE_MEDIAN_NOISE_REMOVE 0X00010102
//图像高通滤波
// to sharpen image
#define IMAGE_HIGHPASS_BASIC_SHARPEN 0X00010200
#define IMAGE_HIGHPASS_MODERATE_SHARPEN 0X00010201
#define IMAGE_HIGHPASS_EXCESSIVE_SHARPEN 0X00010202
#define IMAGE_HIGHPASS_OUTLINE_SHARPEN 0X00010203
//边缘检测
//Laplacian 过滤
//to enhance discontinuities
#define IMAGE_LAPLACIAN_BASIC_DETECT 0X00010300
#define IMAGE_LAPLACIAN_MODERATE_DETECT 0X00010301
#define IMAGE_LAPLACIAN_EXCESSIVE_DETECT 0X00010302
//梯度检测
#define IMAGE_GRADIENT_EAST_DETECT 0X00010400
#define IMAGE_GRADIENT_SOUTH_DETECT 0X00010401
#define IMAGE_GRADIENT_WEST_DETECT 0X00010402
#define IMAGE_GRADIENT_NORTH_DETECT 0X00010403
#define IMAGE_GRADIENT_NORTHEAST_DETECT 0X00010404
#define IMAGE_GRADIENT_SOUTHWEST_DETECT 0X00010405
#define IMAGE_GRADIENT_NORTHWEST_DETECT 0X00010406
#define IMAGE_GRADIENT_SOUTHEAST_DETECT 0X00010407
//平移和差分边缘增强(检测)
#define IMAGE_DIFFERENCE_EAST_DETECT 0X00010500
#define IMAGE_DIFFERENCE_SOUTH_DETECT 0X00010501
#define IMAGE_DIFFERENCE_WEST_DETECT 0X00010502
#define IMAGE_DIFFERENCE_NORTH_DETECT 0X00010503
#define IMAGE_DIFFERENCE_NORTHEAST_DETECT 0X00010504
#define IMAGE_DIFFERENCE_SOUTHWEST_DETECT 0X00010505
#define IMAGE_DIFFERENCE_NORTHWEST_DETECT 0X00010506
#define IMAGE_DIFFERENCE_SOUTHEAST_DETECT 0X00010507
//Prewitt边缘增强(检测)
#define IMAGE_PREWITT_EAST_DETECT 0X00010600
#define IMAGE_PREWITT_SOUTH_DETECT 0X00010601
#define IMAGE_PREWITT_WEST_DETECT 0X00010602
#define IMAGE_PREWITT_NORTH_DETECT 0X00010603
#define IMAGE_PREWITT_NORTHEAST_DETECT 0X00010604
#define IMAGE_PREWITT_SOUTHWEST_DETECT 0X00010605
#define IMAGE_PREWITT_NORTHWEST_DETECT 0X00010606
#define IMAGE_PREWITT_SOUTHEAST_DETECT 0X00010607
//线检测
#define IMAGE_LINE_HORIZONTAL_DETECT 0X00010700
#define IMAGE_LINE_VERTICAL_DETECT 0X00010701
#define IMAGE_LINE_LEFT_DIAGONAL_DETECT 0X00010702
#define IMAGE_LINE_RIGHT_DIAGONAL_DETECT 0X00010703
//非线性边缘检测
#define IMAGE_SOBEL_EDGE_DETECT 0X0001FE00
#define IMAGE_KIRSCH_EDGE_DETECT 0X0001FE01
//.................,and so on.
//自定义卷积核
#define IMAGE_GENERAL_CONVOLUTION_FILTER 0X0001FF00
//小块扩散过滤
#define IMAGE_DIFFUSE_PLOT_FILTER 0X00020000
//颗粒粗化
#define IMAGE_GRANUALATION_PLOT_FILTER 0X00020100
//图像合成
#define IMAGE_TRANSPARENT_COLOR_COMPOSE 0X00030000
//图像间的代数运算
#define IMAGE_ALGEBRA_ADD 0X00030100
#define IMAGE_ALGEBRA_SUBTRACT 0X00030101
#define IMAGE_ALGEBRA_MULTIPLY 0X00030102
#define IMAGE_ALGEBRA_DIVIDE 0X00030103
#define IMAGE_ALGEBRA_AVERAGE 0X00030104
//图像间的逻辑运算
#define IMAGE_LOGIC_AND 0X00030200
#define IMAGE_LOGIC_OR 0X00030201
#define IMAGE_LOGIC_XOR 0X00030202
//图像融合处理
#define IMAGE_BLEND 0X00030300
//图像融合源因子
//用于设置Alpha的计算线索
#define IMAGE_BLEND_SFACTOR_255 0X00030400
#define IMAGE_BLEND_SFACTOR_ZERO 0X00030401
#define IMAGE_BLEND_SFACTOR_DST_COLOR 0X00030402
#define IMAGE_BLEND_SFACTOR_255_MINUS_DST_COLOR 0X00030403
#define IMAGE_BLEND_SFACTOR_SRC_ALPHA 0X00030404
#define IMAGE_BLEND_SFACTOR_255_MINUS_SRC_ALPHA 0X00030405
#define IMAGE_BLEND_SFACTOR_DST_ALPHA 0X00030406
#define IMAGE_BLEND_SFACTOR_255_MINUS_DST_ALPHA 0X00030407
#define IMAGE_BLEND_SFACTOR_SRC_ALPHA_SATURATE 0X00030408
//图像融合目标因子
//用于设置Alpha的计算线索
#define IMAGE_BLEND_DFACTOR_255 0X00030500
#define IMAGE_BLEND_DFACTOR_ZERO 0X00030501
#define IMAGE_BLEND_DFACTOR_SRC_COLOR 0X00030502
#define IMAGE_BLEND_DFACTOR_255_MINUS_SRC_COLOR 0X00030503
#define IMAGE_BLEND_DFACTOR_SRC_ALPHA 0X00030504
#define IMAGE_BLEND_DFACTOR_255_MINUS_SRC_ALPHA 0X00030505
#define IMAGE_BLEND_DFACTOR_DST_ALPHA 0X00030506
#define IMAGE_BLEND_DFACTOR_255_MINUS_DST_ALPHA 0X00030507
//形态学操作
#define IMAGE_MATH_MORPHOLOGY_DILATE 0X00040000
#define IMAGE_MATH_MORPHOLOGY_ERODE 0X00040001
#define IMAGE_MATH_MORPHOLOGY_OPEN 0X00040002
#define IMAGE_MATH_MORPHOLOGY_CLOSE 0X00040003
#define IMAGE_MATH_MORPHOLOGY_PICK_DETECT 0X00040004
#define IMAGE_MATH_MORPHOLOGY_DENOISE 0X00040005
#define IMAGE_MATH_MORPHOLOGY_OPEN_COMPOSE 0X00040006
#define IMAGE_MATH_MORPHOLOGY_GRADIENTIZE 0X00040007
#define IMAGE_MATH_MORPHOLOGY_TOP_HAT 0X00040008
//图像几何变换
#define IMAGE_GEOMETRY_TRANSLATE 0X00050000
#define IMAGE_GEOMETRY_SCALE 0X00050001
#define IMAGE_GEOMETRY_ROTATE_CW_90 0X00050002
#define IMAGE_GEOMETRY_ROTATE_CCW_90 0X00050003
#define IMAGE_GEOMETRY_ROTATE_180 0X00050004
#define IMAGE_GEOMETRY_ROTATE_0 0X00050005
#define IMAGE_GEOMETRY_ROTATE 0X00050006
#define IMAGE_GEOMETRY_MIRROR_X 0X00050007
#define IMAGE_GEOMETRY_MIRROR_Y 0X00050008
//几何变换的质量
#define IMAGE_GEOMETRY_NEAREST_NEIGHBOR_INTERPOLATE 0X00050100
#define IMAGE_GEOMETRY_BILINEAR_INTERPOLATE 0X00050101
#define IMAGE_GEOMETRY_THREE_ORDER_INTERPOLATE 0X00050102
//图像一般变换
#define IMAGE_GEOMETRY_GENERAL_TRANSFORM 0X00050200
//扭曲
#define IMAGE_GEOMETRY_WARP_X 0X00050300
#define IMAGE_GEOMETRY_WARP_Y 0X00050301
////////////////////////////////////////////////////////////////////////////////
//******************* 结构定义 *********************
////////////////////////////////////////////////////////////////////////////////
//图像颜色:RGB
typedef struct tagPIXELCOLORRGB
{
BYTE red;
BYTE green;
BYTE blue;
}PIXELCOLORRGB;
//图像颜色:RGBA
typedef struct tagPIXELCOLORRGBA
{
BYTE red;
BYTE green;
BYTE blue;
BYTE alpha;
}PIXELCOLORRGBA;
//形态学结构
//结构元素
typedef struct tagMORPHOLOGYELEMENT
{
int x; //元素的X坐标
int y; //元素的Y坐标
short red; //该元素的颜色:红色分量,可以为负值
short green; //该元素的颜色:绿色分量,可以为负值
short blue; //该元素的颜色:蓝色分量,可以为负值
}MORPHOLOGYELEMENT;
//二维浮点向量
typedef struct tagFLOATPOINT
{
float x;
float y;
}FLOATPOINT;
////////////////////////////////////////////////////////////////////////////////
//******************* 基本函数 *********************
////////////////////////////////////////////////////////////////////////////////
//截断函数
#define BOUND(x,a,b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)))
//绝对值函数
#define ABS(x) (((x) < 0) ? -(x) : (((x) > 0) ? (x) : 0))
//#define MAX(a,b) (((a) > (b)) ? (a) : (b))
//#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#ifdef __cplusplus
}
#endif
#endif /* __IMG_H__ */
#endif /* __img_h_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -