opencv特效编辑之雕刻效果

原理:

      只需要把原图上的一个像素减去右下角45°方向上的最邻近像素,加上128,再整体做绝对值处理,大于255的设为255即可。

代码如下:

void Ctext::Emboss(IplImage* im)
{
	IplImage* emboss = cvCreateImage(cvGetSize(im), IPL_DEPTH_8U, 1);
	CvScalar pixel0, pixel1,temppixel;
	for (int i = 0; i < im->height - 1; i++)
	{
		for (int j = 0; j < im->width - 1; j++)
		{
			pixel0 = cvGet2D(im, i, j);
			pixel1 = cvGet2D(im, i+1, j+1);
			temppixel.val[2] =abs( pixel0.val[2] - pixel1.val[2] + 128);
			temppixel.val[1] = abs(pixel0.val[1] - pixel1.val[1] + 128);
			temppixel.val[0] = abs(pixel0.val[0] - pixel1.val[0] + 128);
			cvSet2D(emboss, i, j, temppixel);
		}
	}
	cvNamedWindow("White", CV_WINDOW_AUTOSIZE);
	cvShowImage("White", emboss);
	cvWaitKey(0);
	cvDestroyWindow("White");
	cvReleaseImage(&emboss);
	
}
效果图:

opencv特效编辑之雕刻效果_第1张图片

你可能感兴趣的:(opencv,雕刻效果,特效编辑)