opencv特效编辑之雕刻效果

来源:互联网 发布:香港外汇储备数据 编辑:程序博客网 时间:2024/04/19 05:59

原理:

      只需要把原图上的一个像素减去右下角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);}
效果图:



0 0