图像处理——简单浮雕效果和倒影效果实战

news/2024/11/29 8:00:19/

一、浮雕效果

【原理:】每个像素的RGB值都设置为该位置的初始值减去其右下方第二的像素的差,最后统一加上128用于控制灰度,显示出类似浮雕的灰色。这样处理的思路是,将图像上的每个点与它的对角线的像素点形成差值,这样淡化相似的颜色,突出不同的颜色、边缘,从而使图像产生纵深感,产生类似于浮雕的效果。我采用的是循环减去每个像素后面第五个值,效果看起来还不错。

【代码:】

void embossEffect(Mat &img)
{
    cv::Mat_<cv::Vec3b>::iterator it = img.begin<cv::Vec3b>(); 
    cv::Mat_<cv::Vec3b>::iterator itend = img.end<cv::Vec3b>();

    for (; it != itend-5; ++it)
    {
        (*it)[0] = saturate_cast<uchar>( (*it)[0] - (*(it + 5))[0]+128);       
        (*it)[1] = saturate_cast<uchar>((*it)[1] - (*(it + 5))[1]+128);
        (*it)[2] = saturate_cast<uchar>((*it)[2] - (*(it + 5))[2]+128);
    }
}

【效果图:】

 

二、简单倒影效果

【原理:】1.获得一个倒立的镜面图像,即将原图像反转2.对镜面图像进行模糊化来模拟水中倒影的样子。这里的模糊是采用让每个像素点在原来的位置周围随机振荡的方式实现的。具体来看,我采用了生成了一个随机变量deltax作为像素”跳跃”的坐标变化——即将(i,j)+deltax处的值复制到img(I,j)处。这个像素”跳跃“的范围在半径为20的圆内。3.图像拼接。拼接原图与水面倒影图,并柔和拼接边界。之所以柔和边界,主要是直接拼接时两张图会出现明显的分界线。柔和边界做法比较简单,主要是在边界区域做一次渐变模糊,这样从原图到倒影图的过渡就会非常自然。(柔和边界这次没做,有时间了补上)

【代码:】

Mat reflection(Mat img)
{
    Mat dstImg = Mat(2*img.rows,img.cols,img.type());
    img.copyTo(Mat(dstImg, Rect(0, 0, img.cols, img.rows)));
    srand((int)time(NULL));
    cv::Mat_<cv::Vec3b>::iterator it = img.begin<cv::Vec3b>();
    cv::Mat_<cv::Vec3b>::iterator itend = img.end<cv::Vec3b>();
    for (; it != itend ; ++it)
    {
        int deltax = rand() % 25;
        while(it + deltax > itend)
        {
            deltax = rand() % 25;
        }
        (*it)[0] = saturate_cast<uchar>((*(it + deltax))[0]);
        (*it)[1] = saturate_cast<uchar>((*(it + deltax))[1]);
        (*it)[2] = saturate_cast<uchar>((*(it + deltax))[2]);
    }
    flip(img, img, 0);
    img.copyTo(Mat(dstImg, Rect(0, img.rows, img.cols, img.rows)));
    return dstImg;
}

【效果:】

【总结:】本次只是简单实现下效果原理,真正要达到ps那种效果,需要优化的地方还很多。 


http://www.ppmy.cn/news/812480.html

相关文章

字体凹陷效果html,在PS中,想做凹进去的效果,怎么做?例如文字凹进木板中?...

回答&#xff1a; 1、新建(CTRLN)600x500ps白色背景。然后&#xff0c;选择滤镜—杂色—添加杂色&#xff0c;弹出添加杂色对话框。 2、在弹出的杂色对话框中&#xff0c;数量设为40&#xff0c;分布设为平均分布&#xff0c;颜色设为单色。选择滤镜—模糊—动感模糊&#xff0…

ps怎么制作流体_PS制作流体效果的字体

在用Photoshop表现各种反光材质的时候&#xff0c;我们一般都会选择金属、塑料、玻璃等对光反射比较强烈的材质。这一次&#xff0c;我们来试试用水——这种最普通不过的东西&#xff0c;来表现一种反光强烈、闪亮和透明的表面效果。 步骤 1、首先&#xff0c;在Photoshop中新建…

java 浮雕效果,制作逼真缝线牛皮文字效果的PS教程

教程由两部分构成&#xff1a;牛仔布补丁和牛皮字。两部分制作方法也非常类似&#xff0c;过程&#xff1a;先用选区等截取想要的纹理&#xff0c;用图层样式加上初步的浮雕效果&#xff0c;然后缩小选区&#xff0c;增加描边&#xff0c;缝纫的线条等即可得到初步的效果&#…

计算机ps相框怎么做,计算机学前班第五课--PS做相框

用Ps给相片加上艺术相框,制作方法介绍: 一、自制新相框。 1、在Photoshop新建一个文件,尺寸可以根据情况自定,背景为白色。 2、选择矩形选框工具,在选项栏上选择样式为固定长宽比,然后将宽度和高度分别设为10和8,也就是宽度和高度的比为10比8。 3、在画布的中央位置上绘…

html单元格浮雕效果,怎样用PS做出这种凹面浮雕效果?

回答&#xff1a; 1、首先打开PS的斜面浮雕看下一些基本的参数&#xff0c;和会达到的效果&#xff0c;简单总结就是给图形添加一个模拟角度的光影&#xff0c;让图形呈现立体感。 2、打开AI&#xff0c;添加素材&#xff0c;先做反光效果边缘。选中图层在外观面板里面添加一个…

分享5款我自己比较喜欢的WIN10软件

​ 今天我想分享一些自己比较喜欢的桌面端软件&#xff0c;还请大家包涵指正。如果你曾搜索过 Windows 效率工具推荐&#xff0c;对下文的软件或许有所了解。不过为了凑字数&#xff0c;我还是会再介绍一遍。 桌面美化——Win10 Widgets ​ Win10 Widgets是一个桌面美化软件&…

Verilog学习笔记3:与非门

1位的与非门 代码&#xff1a; timescale 1ns/10ps module nand_gate( A, B, Y);input A; input B; output Y;assign Y~(A&B);endmodule//testbenchmodule nand_gate_tb; reg A; reg B; wire Y;nand_gate nand_gate(.A(A),.B(B),.Y(Y));initial begin A<0;B<0;#10 …

2022.03.06开始转码,在职转码第三天

感觉转码要学的东西好多啊&#xff0c;数据结构虽然学过一次&#xff0c;可还是不知道学他是干嘛的&#xff0c;从来没有迈出过下一步&#xff0c;先把c和python过一遍吧&#xff0c;不忙准备数据结构&#xff0c;准备也只是应试&#xff0c;还有刚到货的从入门到实践的python。…