⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image_effect.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*************************************************************************
* 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 + -