vignette滤镜效果:把图像边缘像素变暗,中心元素变得明亮。

首先看看效果,原图如下:

滤镜处理后的效果:

实现思路:

变暗——对彩色图像而言,对每个像素的三个通道即RGB分别减去一个相同的值v(保证变化后的像素值在0~255之间)。

v值的确定——p*当前像素点point距离中点的距离的平方/图像四个顶点到中点的距离的平方。(p的值可控制)

关键代码(项目中一部分,只用领会其思路即可)如下:

void qt_test::slotProcessImage(int num)
{cvCopy(this->image,this->imageCopy,NULL);float value = 0.5;cv::Mat imageMat(this->imageCopy,0);int width = imageMat.cols;int height = imageMat.rows;int centerX = width>>1;int centerY = height>>1;int maxDis = centerX*centerX+centerY*centerY;float diff = maxDis*value;float ratio = width>height?height/width:width/height;for(int i =0;i<height;i++){uchar *imageRow = imageMat.ptr<uchar>(i);for(int j=0;j<width;j++){int b = imageRow[3*j];int g = imageRow[3*j+1];int r = imageRow[3*j+2];float dx = j-centerX;float dy = i-centerY;if(width>height){dx = dx*ratio;}else{dy = dy*ratio;}float dis = dx*dx+dy*dy;float v = num*dis/diff;b = (int)(b-v);g = (int)(g-v);r = (int)(r-v);b = (b>255?255:(b<0?0:b));g = (g>255?255:(g<0?0:g));r = (r>255?255:(r<0?0:r));this->imageCopy->imageData[this->image->widthStep*i+3*j]=(uchar)b;this->imageCopy->imageData[this->image->widthStep*i+3*j+1]=(uchar)g;this->imageCopy->imageData[this->image->widthStep*i+3*j+2]=(uchar)r;}}if(this->isImageLoaded){this->loatPicture(this->width(),this->height(),this->imageCopy);}
}

vignette滤镜效果相关推荐

  1. 用PHP实现Instagram滤镜效果

    译者注:这篇文章涉及图像处理,非常有趣,同时可以用来构建云加端的移动拍照App. 教程细节 程序 :PHP/ImageMagick 难度:中级 预计完成时间:45分钟 你将创建的最终作品 下载源文件 ...

  2. html给img添加滤镜,给图片在博客中添加滤镜效果_CSS/HTML

    配合同事文章的技巧,用自己的博客来测试一下.首先插入一张测试图片: 终极技巧之图片篇:为图片添加滤镜效果 纯文字博客看上去会显得很枯燥,适当的配图能够让页面更美观,也能更好地表达自己的思想.那么如何为 ...

  3. 评估报告有效期过期了怎么办_T4学生签证过期了,怎么申请Vignette Transfer?

    因为英国疫情的反弹,部分学生暂缓去英国的行程,计划先在国内上网课,第二学期再去学校.这个时候就会遇到一个问题:之前签证官给的允许入境时间过期了.比如有的学生的允许入境时间只给到12月底,但是计划明年1 ...

  4. Paint滤镜效果实现

    文章目录 一.LightingColorFilter滤镜(颜色+颜色创建的滤镜效果) 二.PorterDuffColorFilter滤镜(颜色+图片) 三.ColorMatrixColorFilter ...

  5. android bitmap 饱和度 demo,Android GPUImage实现多种图像滤镜效果

    前言 GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜.GPUImage for Android是它在Android下的实现, ...

  6. Direct3D提高篇:HLSL编程实现PhotoShop滤镜效果(1)

    现在学习Direct3d/HLSL的人非常多,教程也非常多.因为硬件的水平在进步,所以可编程管道的处理能力也在不断的提高.从Direct3D 8开始,Direct3D中引入了可编程管道(Program ...

  7. android 视频播放滤镜,用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

    之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频,今天再给大家来一篇openGL ES+Me ...

  8. OpenGL ES之GLSL实现仿抖音“缩放”“灵魂出窍”“抖动”“闪白”“毛刺”“幻觉”等动态滤镜效果

    无滤镜效果 "动态滤镜"效果的实现准备工作的代码与"无分屏滤镜"中的实现逻辑和流程一致,只需要修改相应的底部item数组及对应的着色器名称等,这里不再说明这部分 ...

  9. 使用ActionScript实现滤镜效果

    使用ActionScript实现滤镜效果 2009年02月24日 11:17 用as做滤镜效果,每种滤镜效果对应一个类别,这些类别将来会在Macromedia\Flash 8\语系\First Run ...

最新文章

  1. vivado----fpga硬件调试 (八)----例化ila核
  2. Spring Cloud 使用 FeignClient 启动报错
  3. flexbox 伸缩布局
  4. idea中java文件怎么运行_Java入门基础篇-如何在Java中创建只读文件
  5. sci的figure怎么做_如何制作科技论文中的Figure
  6. English——限定性定语从句与非限定性定语从句(二)
  7. 连线杂志:史上最强的恶意软件Stuxnet揭秘
  8. 公司买的机器不能自己装系统,问对方几天没回一个字
  9. web服务之源码编译安装LAMP
  10. java捕鱼达人源码_捕鱼达人java源码(完整功能)
  11. 台计算机的本地打印机 并且,您在计算机上安装一台本地打印机。您共享这台打印机。您需要确保只有名为Grou..._考试资料网...
  12. java计算机毕业设计网上商城系统源码+系统+数据库+lw文档+mybatis+运行部署
  13. TCP/IP详解(二)数据链路层
  14. 【千锋】网络安全学习笔记(三)
  15. 测试淘宝站内的搜索系统
  16. 我拿到了北京户口!却是跌落的开始....
  17. 具有黑马潜质的电影都有哪些特色?
  18. mysql查询表中重复记录
  19. 金山WPS服务端研发实习面经——一、二面+HR面
  20. 上网行为审计运用了哪些技术

热门文章

  1. 颜色的Pantone编码
  2. COPC Inc.宣布客户服务历程咨询计划
  3. 用python画满天星花朵_用python画一朵玫瑰给你
  4. 华为发布全栈数据中心、新一代智慧园区两大方案,加速行业数字化与绿色发展双转型
  5. 每日一道Python编程题目练习,不定期更新
  6. 初学CAD有什么值得学习的技巧?
  7. AcWing754. 平方矩阵 II
  8. hadoop cdh5的pig隐式转化(int到betyarray)不行了
  9. FATFS 的几个函数使用方法
  10. 【Linux进程控制】进程创建 | 进程终止 | 进程等待 | 进程替换