📄 image_effect.c
字号:
/*************************************************************************
* FUNCTION
* image_effect_enc_handler
*
* DESCRIPTION
* This function handles the effects in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void image_effect_enc_handler(void)
{
switch(image_effect_enc)
{
case CAM_EFFECT_ENC_NORMAL:
effect_enc_normal();
break;
case CAM_EFFECT_ENC_GRAYSCALE:
effect_enc_grayscale();
break;
case CAM_EFFECT_ENC_SEPIA:
effect_enc_sepia();
break;
case CAM_EFFECT_ENC_SEPIAGREEN:
effect_enc_sepiagreen();
break;
case CAM_EFFECT_ENC_SEPIABLUE:
effect_enc_sepiablue();
break;
case CAM_EFFECT_ENC_COLORINV:
effect_enc_colorinv();
break;
case CAM_EFFECT_ENC_GRAYINV:
effect_enc_grayinv();
break;
case CAM_EFFECT_ENC_BLACKBOARD:
effect_enc_blackboard();
break;
case CAM_EFFECT_ENC_WHITEBOARD:
effect_enc_whiteboard();
break;
case CAM_EFFECT_ENC_COPPERCARVING:
effect_enc_coppercarving();
break;
case CAM_EFFECT_ENC_EMBOSSMENT:
effect_enc_embossment();
break;
case CAM_EFFECT_ENC_BLUECARVING:
effect_enc_bluecarving();
break;
case CAM_EFFECT_ENC_CONTRAST:
effect_enc_contrast();
break;
case CAM_EFFECT_ENC_JEAN:
effect_enc_jean();
break;
case CAM_EFFECT_ENC_SKETCH:
effect_enc_sketch();
break;
case CAM_EFFECT_ENC_OIL:
effect_enc_oil();
break;
default:
effect_enc_normal();
break;
}
}
/*************************************************************************
* FUNCTION
* image_effect_dec_handler
*
* DESCRIPTION
* This function handles the effects in VIDEO PLAYBACK,
* IMAGE PLAYBACK and POST-PORCESSING mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void image_effect_dec_handler(void)
{
switch(image_effect_dec_para.effect_index)
{
case CAM_EFFECT_DEC_GRAYSCALE:
effect_dec_grayscale();
break;
case CAM_EFFECT_DEC_SEPIA:
effect_dec_sepia();
break;
case CAM_EFFECT_DEC_SEPIAGREEN:
effect_dec_sepiagreen();
break;
case CAM_EFFECT_DEC_SEPIABLUE:
effect_dec_sepiablue();
break;
case CAM_EFFECT_DEC_COLORINV:
effect_dec_colorinv();
break;
case CAM_EFFECT_DEC_GRAYINV:
effect_dec_grayinv();
break;
case CAM_EFFECT_DEC_WATERCOLOR:
effect_dec_watercolor();
break;
case CAM_EFFECT_DEC_LIGHTBLUR:
effect_dec_lightblur();
break;
case CAM_EFFECT_DEC_BLUR:
effect_dec_blur();
break;
case CAM_EFFECT_DEC_STRONGBLUR:
effect_dec_strongblur();
break;
case CAM_EFFECT_DEC_UNSHARP:
effect_dec_unsharp();
break;
case CAM_EFFECT_DEC_SHARPEN:
effect_dec_sharpen();
break;
case CAM_EFFECT_DEC_MORESHARPEN:
effect_dec_moresharpen();
break;
case CAM_EFFECT_DEC_MEDIAN:
effect_dec_median();
break;
case CAM_EFFECT_DEC_DILATION:
effect_dec_dilation();
break;
case CAM_EFFECT_DEC_EROSION:
effect_dec_erosion();
break;
default:
break;
}
}
/*************************************************************************
* FUNCTION
* image_adj_dec_handler
*
* DESCRIPTION
* This function handles the effects in IMAGE PLAYBACK and
* POST-PORCESSING mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void image_adj_dec_handler(void)
{
switch(image_adj_dec_para.effect_index)
{
case CAM_ADJ_DEC_HUE:
adj_dec_hue();
break;
case CAM_ADJ_DEC_SATURATION:
adj_dec_saturation();
break;
case CAM_ADJ_DEC_GAMMA:
adj_dec_gamma();
break;
case CAM_ADJ_DEC_ADJR:
adj_dec_coloradj();
break;
case CAM_ADJ_DEC_ADJG:
adj_dec_coloradj();
break;
case CAM_ADJ_DEC_ADJB:
adj_dec_coloradj();
break;
case CAM_ADJ_DEC_CONTRAST:
adj_dec_brightness_contrast();
break;
case CAM_ADJ_DEC_BRIGHTNESS:
adj_dec_brightness_contrast();
break;
default:
break;
}
}
/*************************************************************************
*
* IMAGE EFFECT PARAMETER SETTING
*
**************************************************************************/
/*************************************************************************
* FUNCTION
* effect_enc_normal
*
* DESCRIPTION
* This function provides non effect in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_normal(void)
{
kal_uint8 i;
for(i=28;i<53;i++)
{
*((volatile unsigned int *) (CAMERA_base + i*4))=camera_para.ISP.reg[i];
}
if(camera_para.PREDGAMMA.gamma_select!=0)
{
SET_GAMMA_B1(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][0]);
SET_GAMMA_B2(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][1]);
SET_GAMMA_B3(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][2]);
SET_GAMMA_B4(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][3]);
SET_GAMMA_B5(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][4]);
SET_GAMMA_B6(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][5]);
SET_GAMMA_B7(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][6]);
SET_GAMMA_B8(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][7]);
SET_GAMMA_B9(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][8]);
SET_GAMMA_B10(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][9]);
SET_GAMMA_B11(camera_para.PREDGAMMA.gamma[camera_para.PREDGAMMA.gamma_select-1][10]);
}
}
/*************************************************************************
* FUNCTION
* effect_enc_grayscale
*
* DESCRIPTION
* This function provides gray scale effect in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_grayscale(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
}
/*************************************************************************
* FUNCTION
* effect_enc_sepia
*
* DESCRIPTION
* This function provides sepia effect in PREVIEW, CAPTURE and MPEG4 ENCODE
* mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_sepia(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
SET_HUE_U_OFFSET(158);
SET_HUE_V_OFFSET(30);
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
}
/*************************************************************************
* FUNCTION
* effect_enc_sepiagreen
*
* DESCRIPTION
* This function provides green sepia effect in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_sepiagreen(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
SET_HUE_U_OFFSET(145);
SET_HUE_V_OFFSET(145);
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
}
/*************************************************************************
* FUNCTION
* effect_enc_sepiablue
*
* DESCRIPTION
* This function provides blue sepia effect in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_sepiablue(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
SET_HUE_U_OFFSET(88);
SET_HUE_V_OFFSET(158);
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
}
/*************************************************************************
* FUNCTION
* effect_enc_colorinv
*
* DESCRIPTION
* This function provides color invert effect in PREVIEW, CAPTURE and MPEG4
* ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_colorinv(void)
{
ENABLE_OPD_GAMMA_OUT_INVERSION;
}
/*************************************************************************
* FUNCTION
* effect_enc_grayinv
*
* DESCRIPTION
* This function provides gray color invert effect in PREVIEW, CAPTURE and
* MPEG4 ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_grayinv(void)
{
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
ENABLE_OPD_GAMMA_OUT_INVERSION;
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
}
/*************************************************************************
* FUNCTION
* effect_enc_blackboard
*
* DESCRIPTION
* This function provides blackboard effect in PREVIEW, CAPTURE and
* MPEG4 ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_blackboard(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
/* Edge setting */
ENABLE_RGB_EDGE_GAIN;
DISABLE_EDGE_EFFECT_OIL;
SET_EDGE_GAIN_KNEESEL(3);
SET_EDGE_GAIN_LINE(0);
SET_EDGE_GAIN_H2(31);
SET_EDGE_GAIN_H(0);
SET_EDGE_SPECI_PONLY(1);
SET_EDGE_SPECI_GAIN(0);
SET_EDGE_GAIN_VB(31);
DISABLE_EDGE_GAIN_SPECIABS;
DISABLE_EDGE_GAIN_SPECIINV;
DISABLE_OPD_GAMMA_OUT_INVERSION;
SET_EDGE_CORE_H(0);
SET_EDGE_V_CTRL_E_TH1_V(4);
ENABLE_EMBOSS1;
ENABLE_EMBOSS2;
SET_INTERPOLATION_THRE_LEDGE(127);
/* Color Matrix*/
SET_COLOR_MATRIX1(0,0,0);
SET_COLOR_MATRIX2(0,0,0);
SET_COLOR_MATRIX3(0,0,0);
/* Flare setting */
SET_GAMMA_RGB_FLARE_SIGN_R_LOW;
SET_GAMMA_RGB_FLARE_R(0);
SET_GAMMA_RGB_FLARE_SIGN_G_LOW;
SET_GAMMA_RGB_FLARE_G(0);
SET_GAMMA_RGB_FLARE_SIGN_B_LOW;
SET_GAMMA_RGB_FLARE_B(0);
/* Contrast Gain setting */
SET_AWB_R_GAIN(128);
SET_AWB_G_GAIN(128);
SET_AWB_B_GAIN(128);
/* Y Edge */
ENABLE_Y_EDGE;
SET_Y_EDGE_GAIN(15);
}
/*************************************************************************
* FUNCTION
* effect_enc_whiteboard
*
* DESCRIPTION
* This function provides whiteboard effect in PREVIEW, CAPTURE and
* MPEG4 ENCODE mode.
*
* PARAMETERS
* None
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void effect_enc_whiteboard(void)
{
/* Hue setting */
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
/* Edge setting */
ENABLE_RGB_EDGE_GAIN;
DISABLE_EDGE_EFFECT_OIL;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -