http://blog.csdn.net/kezunhai
浮雕通过勾画图像轮廓和降低周围像素颜色值,从而生产具有凹凸感的浮雕效果。
实现原理:根据以下模块对图像进行模板操作,然后对所得结果进行亮度偏移。
当然出了该模板外,用户还可以选择其他功能类似的模板。
算法实现:
void PhotoShop::Emboss(Mat& img, Mat& dst, int offset /* = 127 */) { if ( dst.empty()) dst.create(img.rows, img.cols, img.type()); int height = img.rows; int width = img.cols; int chns = img.channels(); int border = 1; int i, j, k, sum; for ( i= border; i<height-border; ++i) { unsigned char* dstData = (unsigned char*)dst.data+dst.step*i; for ( j=border; j<width-border; ++j) { for ( k=0; k<chns; k++) { sum = 4*getPixel(img, i, j, k) - getPixel(img, i-1, j-1, k) - getPixel(img, i-1, j+1, k) - getPixel(img, i+1, j-1, k) - getPixel(img, i+1, j+1,k); dstData[j*chns+k] = saturate_cast<uchar>(sum+offset); } } } }
再一张女神的: