opencv 图片边缘渐变_opencv滤镜-PS羽化特效
羽化特效羽化是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羽化特效相关推荐
- opencv 图片边缘渐变_OpenCV——颜色均匀渐变
参考来源: // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #inclu ...
- opencv 图片边缘渐变_基于OpenCV的图像卡通化
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...
- opencv图片矩形网格边线_OpenCV C++(九)----几何形状的检测和拟合
9.1.点集的最小外包 点集是坐标点的集. 9.1.1.最小外包旋转矩形 //点集 Mat points = (Mat_(5, 2) << 1, 1, 5, 1, 1, 10, 5, 10 ...
- php 图片处理羽化,PS羽化图片边缘方法
为了让处理的图片更美观,我们抠图之后都会进行边缘的羽化,这样能让图片更好的嵌入另一张图片.那么用PS如何羽化图片边缘?下面小编就为大家详细介绍一下,来看看吧! 步骤 1.打开PS 2.打开准备好的图片 ...
- ps使图片边缘模糊且融入背景色
记录:图片处理 1.在PS里面打开要处理的图片 2.使用"矩形选框工具"选择边缘范围 首先选中,然后右击弹出菜单选择"选择反向" 3.然后工具栏"滤镜 ...
- html5 图片羽化,html5+webgl仿ps羽化笔刷液态动画特效
html5 canvas基于webgl制作的仿ps羽化笔刷液态动画特效,羽化笔刷跟随鼠标移动绘画,很有梦幻效果. 查看演示 下载资源: 5 次 下载资源 下载积分: 20 积分 js代码 attrib ...
- word图片靠右_如何设置word图片边缘透明
我们在用WORD写文档的时候也通常会想法设法把文档做的漂漂亮亮的,比如说好好的排个版面,插入个图片什么的,可是插入的图片边缘颜色太明显,该怎么办呢?下面学习啦给大家分享word设置图片边缘透明的技巧, ...
- css背景图片高斯模糊_CSS3 filter(滤镜) 制作图片高斯模糊无需JS
本帖最后由 fengrui99 于 2019-7-8 11:20 编辑 这是一个寂寞的工作日,因为没有女盆友所以很寂寞,因为很寂寞所以来写教程.希望再看教程的你也是单身!啊,知道你是单身枫瑞贼开心!爽 ...
- html做图片模糊效果,CSS3 filter(滤镜) 制作图片高斯模糊无需JS
CSS3 filter(滤镜) 制作图片高斯模糊无需JS 这是一个寂寞的工作日,因为没有女盆友所以很寂寞,因为很寂寞所以来写教程.希望再看教程的你也是单身!啊,知道你是单身枫瑞贼开心!爽的一B!!!起 ...
最新文章
- 接到三无产品的测试需求时怎么办
- Druid 连接泄漏监测
- css transition animation
- Java文件能编译成lib吗_Makefile用于将一些.cpp和.h编译成lib
- iview地区加载_LoadingBar 加载进度条
- java jdbc init_Java 的JDBC 数据库连接池实现方法
- keil复制代码乱码_成都控制器开发:容易忽略!用KEIL编码汉字也会有BUG
- Socket 编程之_TCP ☎☎☎
- Delphi LiveBinds组件
- 大数据的价值与发展趋势
- Hadoop1.0之集群搭建
- 全球及中国农业微量营养素行业商业模式分析及投资风险预测报告2022-2028年版
- Java并发指南1:并发基础与Java多线程
- 2019 Java 全栈工程师进阶路线图,一定要收藏
- intellij idea 2018 激活
- 怎么选择Tomcat对应的JDK版本
- App自动化测试之Java平台下使用Appium测试App(一)
- poj解题报告——poj 1528 Perfection
- 北斗短报文优点以及行业应用
- 2021华为杯D题第四题完整代码