博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像特效之浮雕与雕刻
阅读量:5888 次
发布时间:2019-06-19

本文共 2231 字,大约阅读时间需要 7 分钟。

hot3.png

///

//Parameters:

// pImg: input image
// flags: IMAGECAMEO_0 : sign sculputre in image processing
// IMAGECAMEO_1 : sign engrave in image processing
///
IplImage *ImageEffect::ImageCameo(IplImage pImg, int flags)
{
if(!pImg){
printf("Errror: Load File in ImageCameo(.).\n");
exit(EXIT_FAILURE);
}
nWidth = pImg->width;
nHeight = pImg->height;
pImgdata =(uchar
) pImg->imageData;
pImgChannels = pImg->nChannels;

step = pImg->widthStep;

int temp0,temp1,temp2;

for(int i =0; i<nWidth-1; i++){

for( int j =0; j<nHeight-1;j++){
if(pImgChannels ==1){ // gray image
if(flags ==IMAGECAMEO_0){ //sculputre processing
temp0 = pImgdata[(j+1)step+(i+1)pImgChannels]-
pImgdata[j
step+i
pImgChannels]+128;
}
if(flags ==IMAGECAMEO_1){ //engrave processing
temp0 = pImgdata[jstep+ipImgChannels]-
pImgdata[(j+1)step+(i+1)pImgChannels] +128;
}
if(temp0>255) pImgdata[j
step+i
pImgChannels] = 255;
if(temp0<0) pImgdata[jstep+ipImgChannels] = 0;
else pImgdata[jstep+ipImgChannels] = temp0;
}
if(pImgChannels ==3){ // color image
if(flags == IMAGECAMEO_0){ //sculputre processing
temp0 = pImgdata[(j+1)step+(i+1)pImgChannels]-
pImgdata[j
step+i
pImgChannels] +128;
temp1 = pImgdata[(j+1)step+(i+1)pImgChannels+1]-
pImgdata[j
step+i
pImgChannels+1] +128;
temp2 = pImgdata[(j+1)step+(i+1)pImgChannels+2]-
pImgdata[j
step+i
pImgChannels+2] +128;
}
if(flags == IMAGECAMEO_1){ //engrave processing
temp0 = pImgdata[jstep+ipImgChannels]-
pImgdata[(j+1)step+(i+1)pImgChannels]+128;
temp1 = pImgdata[j
step+i
pImgChannels+1]-
pImgdata[(j+1)step+(i+1)pImgChannels+1]+128;
temp2 = pImgdata[j
step+i
pImgChannels+2]-
pImgdata[(j+1)*step+(i+1)*pImgChannels+2]+128;
}

if(temp0>255) pImgdata[j*step+i*pImgChannels] = 255;       if(temp0<0)   pImgdata[j*step+i*pImgChannels] = 0;       else          pImgdata[j*step+i*pImgChannels] = temp0;       if(temp1>255) pImgdata[j*step+i*pImgChannels+1] = 255;       if(temp1<0)   pImgdata[j*step+i*pImgChannels+1] = 0;       else          pImgdata[j*step+i*pImgChannels+1] = temp1;       if(temp2>255) pImgdata[j*step+i*pImgChannels+2] = 255;       if(temp2<0)   pImgdata[j*step+i*pImgChannels+2] = 0;       else          pImgdata[j*step+i*pImgChannels+2] = temp2;     }   }

}

return pImg;
}

在此输入图片描述在此输入图片描述

转载于:https://my.oschina.net/u/733649/blog/223503

你可能感兴趣的文章
时间日期
查看>>
PredictionIO+Universal Recommender快速开发部署推荐引擎的问题总结(2)
查看>>
【232】◀▶ IDL显示地理图像
查看>>
【116】Windows 系统组合键
查看>>
学习进度表 04
查看>>
python---__getattr__\__setattr_重载'.'操作
查看>>
谈谈javascript中的prototype与继承
查看>>
时序约束优先级_Vivado工程经验与各种时序约束技巧分享
查看>>
nginx win 启动关闭_windows下nginx启动与关闭的批处理脚本
查看>>
python中实参包括哪些_第50p,形参与实参,Python中函数的参数详解
查看>>
minio 并发数_MinIO 参数解析与限制
查看>>
eap wifi 证书_用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书)
查看>>
mysql 应用程序是哪个文件夹_Mysql 数据库文件存储在哪个目录?
查看>>
mysql半同步和无损复制_MySQL半同步复制你可能没有注意的点
查看>>
mysql能看见表显示表不存在_遇到mysql数据表不存在的问题
查看>>
使用mysql实现宿舍管理_JSP+Struts2+JDBC+Mysql实现的校园宿舍管理系统
查看>>
mysql alter 修改字段类型_MySQL ALTER命令:删除,添加或修改表字段、修改字段类型及名称等...
查看>>
mysql中的事务和锁_MySQL - 事务和锁中的互斥?
查看>>
mysql statement讲解_Statement接口详解
查看>>
mysql_print_default_知识点:MySQL常用工具介绍(十 二)——实用程序my_print_defaults、perror...
查看>>