OpenCV_1浮雕和雕刻效果

一,原图:

OpenCV_1浮雕和雕刻效果_第1张图片

二,代码:

//雕刻&浮雕
void Emboss()
{
	Mat src = imread("D:\\test\\26.png");
	Mat img0(src.size(), CV_8UC3);
	Mat img1(src.size(), CV_8UC3);
	for (int y = 1; y(y);
		uchar *p1 = src.ptr(y + 1);

		uchar *q0 = img0.ptr(y);
		uchar *q1 = img1.ptr(y);
		for (int x = 1; x255)
					q0[3 * x + i] = 255;
				else
					q0[3 * x + i] = tmp0;

				int tmp1 = p0[3 * (x - 1) + i] - p1[3 * (x + 1) + i] + 128;//雕刻
				if (tmp1<0)
					q1[3 * x + i] = 0;
				else if (tmp1>255)
					q1[3 * x + i] = 255;
				else
					q1[3 * x + i] = tmp1;
			}
		}
	}

	Mat gray_img0, gray_img1;
	cvtColor(img0, gray_img0, CV_BGR2GRAY);  
	cvtColor(img1, gray_img1, CV_BGR2GRAY); 

	imshow("src", src);
	imshow("浮雕", gray_img0);
	imshow("雕刻", gray_img1);
	waitKey();
}


//-----开始------
void COpenCVLearningDlg::OnBnClickedStartButton()
{
	Emboss();
}

三,结果:

OpenCV_1浮雕和雕刻效果_第2张图片

 

欢迎扫码关注我的微信公众号

原文地址:https://blog.csdn.net/sangni007/column/info/stylizefliter 

你可能感兴趣的:(#,OpenCV系列笔记)