羽化特效羽化是ps术语,羽化原理是令选区内外衔接部分虚化,起到渐变的作用从而达到自然衔接的效果,是ps及其其它版本中的处理图片的重要工具。羽化可使像素选区的边缘变得模糊,有助于所选区域与周围的像素混合.

实现原理

羽化值越大,朦胧范围越宽,羽化值越小,朦胧范围越窄。可根据你想留下图的大小来调节。

算法分析:1、通过对rgb值增加额外的V值实现朦胧效果

2、通过控制V值的大小实现范围控制。

3、V  = 255 当前点Point距中点距离的平方s1 / (顶点距中点的距离平方mSize)s2;

4、s1 有根据 ratio 修正 dx dy值。

代码实现// feather-filter.cpp : 羽化

// @mango

// https://mangoroom.cn

#include

#include

#include

int main()

{

//1、通过对rgb值增加额外的V值实现朦胧效果

//2、通过控制V值的大小实现范围控制。

//3、V = 255 * 当前点Point距中点距离的平方s1 / (顶点距中点的距离平方s2 * mSize);

//4、s1 有根据 ratio 修正 dx dy值。

cv::Mat img = cv::imread("fruit.jpg");

if (img.empty())

{

std::cout << "Failed to read the image!" << std::endl;

return -1;

}

// s2

int center_x = img.cols >> 1;

int center_y = img.rows >> 1;

int s2 = center_x * center_x + center_y * center_y;

// 宽长比例 ratio

double ratio = img.cols > img.rows ? static_cast(img.rows) / img.cols : static_cast(img.cols) / img.rows;

// mSize

// 2、通过控制V值的大小实现范围控制。

double mSize = 0.5;

for (size_t i = 0; i < img.rows; i++)

{

for (size_t j = 0; j < img.cols; j++)

{

double dx = static_cast(std::abs(center_x - static_cast(j)));

double dy = static_cast(std::abs(center_y - static_cast(i)));

//4、s1 有根据 ratio 修正 dx dy值。

if (center_x > center_y)

{

dx = dx * ratio;

}

else

{

dy = dx * ratio;

}

// s1

double s1 = dx * dx + dy * dy;

// v

// 3、V = 255 * 当前点Point距中点距离的平方s1 / (顶点距中点的距离平方s2 * mSize);

double v = 255 * s1 / (s2 * mSize);

int b = img.at<:vec3b>(i, j)[0];

int g = img.at<:vec3b>(i, j)[1];

int r = img.at<:vec3b>(i, j)[2];

// 1、通过对rgb值增加额外的V值实现朦胧效果

img.at<:vec3b>(i, j)[0] = cv::saturate_cast(b + v);

img.at<:vec3b>(i, j)[1] = cv::saturate_cast(g + v);

img.at<:vec3b>(i, j)[2] = cv::saturate_cast(r + v);

}

}

cv::imshow("羽化特效", img);

cv::waitKey(0);

return 0;

}

opencv 图片边缘渐变_opencv滤镜-PS羽化特效相关推荐

  1. opencv 图片边缘渐变_OpenCV——颜色均匀渐变

    参考来源: // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #inclu ...

  2. opencv 图片边缘渐变_基于OpenCV的图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...

  3. opencv图片矩形网格边线_OpenCV C++(九)----几何形状的检测和拟合

    9.1.点集的最小外包 点集是坐标点的集. 9.1.1.最小外包旋转矩形 //点集 Mat points = (Mat_(5, 2) << 1, 1, 5, 1, 1, 10, 5, 10 ...

  4. php 图片处理羽化,PS羽化图片边缘方法

    为了让处理的图片更美观,我们抠图之后都会进行边缘的羽化,这样能让图片更好的嵌入另一张图片.那么用PS如何羽化图片边缘?下面小编就为大家详细介绍一下,来看看吧! 步骤 1.打开PS 2.打开准备好的图片 ...

  5. ps使图片边缘模糊且融入背景色

    记录:图片处理 1.在PS里面打开要处理的图片 2.使用"矩形选框工具"选择边缘范围 首先选中,然后右击弹出菜单选择"选择反向" 3.然后工具栏"滤镜 ...

  6. html5 图片羽化,html5+webgl仿ps羽化笔刷液态动画特效

    html5 canvas基于webgl制作的仿ps羽化笔刷液态动画特效,羽化笔刷跟随鼠标移动绘画,很有梦幻效果. 查看演示 下载资源: 5 次 下载资源 下载积分: 20 积分 js代码 attrib ...

  7. word图片靠右_如何设置word图片边缘透明

    我们在用WORD写文档的时候也通常会想法设法把文档做的漂漂亮亮的,比如说好好的排个版面,插入个图片什么的,可是插入的图片边缘颜色太明显,该怎么办呢?下面学习啦给大家分享word设置图片边缘透明的技巧, ...

  8. css背景图片高斯模糊_CSS3 filter(滤镜) 制作图片高斯模糊无需JS

    本帖最后由 fengrui99 于 2019-7-8 11:20 编辑 这是一个寂寞的工作日,因为没有女盆友所以很寂寞,因为很寂寞所以来写教程.希望再看教程的你也是单身!啊,知道你是单身枫瑞贼开心!爽 ...

  9. html做图片模糊效果,CSS3 filter(滤镜) 制作图片高斯模糊无需JS

    CSS3 filter(滤镜) 制作图片高斯模糊无需JS 这是一个寂寞的工作日,因为没有女盆友所以很寂寞,因为很寂寞所以来写教程.希望再看教程的你也是单身!啊,知道你是单身枫瑞贼开心!爽的一B!!!起 ...

最新文章

  1. 接到三无产品的测试需求时怎么办
  2. Druid 连接泄漏监测
  3. css transition animation
  4. Java文件能编译成lib吗_Makefile用于将一些.cpp和.h编译成lib
  5. iview地区加载_LoadingBar 加载进度条
  6. java jdbc init_Java 的JDBC 数据库连接池实现方法
  7. keil复制代码乱码_成都控制器开发:容易忽略!用KEIL编码汉字也会有BUG
  8. Socket 编程之_TCP ☎☎☎
  9. Delphi LiveBinds组件
  10. 大数据的价值与发展趋势
  11. Hadoop1.0之集群搭建
  12. 全球及中国农业微量营养素行业商业模式分析及投资风险预测报告2022-2028年版
  13. Java并发指南1:并发基础与Java多线程
  14. 2019 Java 全栈工程师进阶路线图,一定要收藏
  15. intellij idea 2018 激活
  16. 怎么选择Tomcat对应的JDK版本
  17. App自动化测试之Java平台下使用Appium测试App(一)
  18. poj解题报告——poj 1528 Perfection
  19. 北斗短报文优点以及行业应用
  20. 2021华为杯D题第四题完整代码

热门文章

  1. 做软件还是做电商,跪舔还是尊严?
  2. SpringBoot安全登录验证
  3. 资深工程师PCB经验介绍
  4. Android opengl es 3.0 + ndk 绘画涂鸦项目
  5. Win11怎么分区硬盘?
  6. Pytorch 锚框
  7. 微信公众号开发,移动端开发遇到的问题及其他技巧
  8. python 多因素方差分析_SPSS分析技术:多元方差分析
  9. c语言编程快速收敛的圆周率计算,[原创]圆周率PI的计算(精确到几十万位)
  10. 如何通过软文营销提高用户黏性 做好品牌推广和营销宣传