图像处理算法之图像暗角特效
void ImageVignetting(BMPINFO *pSrcBitmap, float strength)
{int width = pSrcBitmap->lWidth;int height = pSrcBitmap->lHeight;float radio = 0.0;float maxLen = (float)MAX(width, height);float cx = maxLen * 0.5f;float cy = maxLen * 0.5f;float maxDist = cx*cx + cy*cy;uchar* pSrcData = pSrcBitmap->pPlane[0];if (strength > 0.0f){// 亮角for (int i = 0; i < height; i++){for (int j = 0; j < width; j++, pSrcData += 4){float nx = (float)maxLen * j / width;float ny = (float)maxLen * i / height;float curDist = (nx - cx)*(nx - cx) + (ny - cy)*(ny - cy);radio = curDist / maxDist;// radio *= radio;radio *= strength;pSrcData[BLUE] = (uchar)CLAMP0255(pSrcData[BLUE]*(1.0f - radio) + SCREEN_XY(pSrcData[BLUE], 230)*radio);pSrcData[GREEN] = (uchar)CLAMP0255(pSrcData[GREEN]*(1.0f - radio) + SCREEN_XY(pSrcData[GREEN], 230)*radio);pSrcData[RED] = (uchar)CLAMP0255(pSrcData[RED]*(1.0f - radio) + SCREEN_XY(pSrcData[RED], 230)*radio);}}}else{// 暗角for (int i = 0; i < height; i++){for (int j = 0; j < width; j++, pSrcData += 4){float nx = (float)maxLen * j / width;float ny = (float)maxLen * i / height;float curDist = (nx - cx)*(nx - cx) + (ny - cy)*(ny - cy);radio = curDist / maxDist;// radio *= radio;radio *= strength;radio = 1.0f + radio;pSrcData[BLUE] = (uchar)CLAMP0255(pSrcData[BLUE]*radio);pSrcData[GREEN] = (uchar)CLAMP0255(pSrcData[GREEN]*radio);pSrcData[RED] = (uchar)CLAMP0255(pSrcData[RED]*radio);}}}
}
下面是效果图:
图像处理算法之图像暗角特效相关推荐
- [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...
此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...
- [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 图像处理算法之变老特效
用了美颜app,瞬间可以将自己变成脸小.大眼.白肤的女神.男神.那有没有人想看看自己一脸皱纹的样子呢?好奇心大家都应该有,不过没人想变老,虽然这个现实每个人都要面对.app store上有相关应用,曾 ...
- C6000 DSP技术深度探索-图像处理算法仿真到硬件实现踩过的那些坑
C6000 DSP技术深度探索-图像处理算法仿真到硬件实现踩过的那些坑 写在前面 图像处理算法-仿真篇 DSP硬件移植篇-挖坑篇 DSP硬件移植篇-坑的种类 写在前面 时间如白马过隙,今天登录CSDN ...
- JavaScript实现图像处理----resizeImageWidth调整图像宽度算法(附完整源码)
JavaScript实现图像处理----resizeImageWidth调整图像宽度算法(附完整源码) imageData.js完整源代码 resizeImageWidth.js完整源代码 image ...
- 基于L0范数平滑的图像漫画特效生成算法
图像漫画特效算法,主要思路可以分两部分,第一,简化图像,即去除图像细节,仅保留图像主要信息,第二,生成合适的边缘线条,最后将两者合成即可,合成其实就是将两者简单一乘即可.在简化图像步骤, ...
- 生成模型--GAN用于图像漫画特效算法
图像漫画特效算法 这种风格迁移的算法都快要被GAN统治了 . 主要思路 可以分两部分: 1)简化图像,即去除图像细节,仅保留图像主要信息: 在简化图像步骤,除了meanshift算法外 ...
- matlab调用海康威视摄像头_招聘|海康威视招聘一批算法、图像等AI工程师
原标题:招聘|海康威视招聘一批算法.图像等AI工程师 全球人工智能 文章参考:海康威视 算法工程师 工作地点:杭州薪资:18-35k 经验:不限 学历:硕士及以上 职位描述: 1. 负责公司视觉最新视 ...
- Java图片gh颜色渐变_强大的Java图像滤镜特效类库Java Image Filters
Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面,Java Image Filters简直就是强大到天衣无缝.它几乎提供了PS上大部分的图像特效.比如反色 ...
最新文章
- MATLAB GUI界面显示不全的解决办法
- js 判断手机横竖屏的实现方法(不依赖任何其他库)
- php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别
- Codeforces 845 C. Two TVs 思路:简单贪心算法
- cnil在python_在Python中匹配组
- 单线程的Redis为什么却能支撑高并发?
- 轻量级数据sqlite的C++调用示例
- 庆祝喜提13337000编号,我悄悄把老板的Windows命令行设置成了这样
- java到底是值传递还是引用传递?
- php tp3.2 去重方法,thinkPHP框架整合tcpdf插件操作示例
- Prometheus 监控 nginx
- CleanMyMac X2021专业苹果电脑系统优化工具
- 如果计算机是中国人发明的,那编程代码很可能就应该这样写!
- 字符函数-(学习笔记)
- ax 2012 随笔
- SSIS数据转换器及字符转换器使用
- 多麦克风做拾音的波束_乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评...
- 普通台式机上Tesla M40显卡paddleGPU深度学习柯南的变身器上机体验
- UG/NX二次开发入门手册
- GitBlit使用说明书