新闻动态

OpenCV自动给图片添加彩虹特效的实现示例

发布日期:2021-12-08 18:54 | 文章来源:站长之家

背景介绍

南方的冬季总是淅淅沥沥下着小雨,晴天渐渐成为奢望。此时,我多么希望感受一下夏季的温暖,哪怕是雨天,偶尔还会看到彩虹!想到这便动起手来,找找夏季的照片和视频,用OpenCV给它们加上漫天彩虹。

 实现步骤

【1】准备一张夏季风景图片,加载读取

Mat src = imread("summer.jpg");

【2】创建一张与原图同样大小的黑图,然后通过画椭圆函数绘制彩虹

Mat dst;
int row = srcImg.rows;
int col = srcImg.cols;
Mat img(row, col, CV_8UC3, Scalar::all(0));
  
ellipse(img, Point(col/2, row*4/5), Size(col/2+100, row*4/5), 180, 0, 180, Scalar(255,0,128), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8+100,row*4/5-8), 180, 0, 180, Scalar(255,0,0), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8*2+100,row*4/5-8*2), 180, 0, 180, Scalar(255,255,0), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8*3+100,row*4/5-8*3), 180, 0, 180, Scalar(0,255,0), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8*4+100,row*4/5-8*4), 180, 0, 180, Scalar(0,255,255), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8*5+100,row*4/5-8*5), 180, 0, 180, Scalar(0,128,255), 5);
ellipse(img, Point(col/2,row*4/5), Size(col/2-8*6+100,row*4/5-8*6), 180, 0, 180, Scalar(0,0,255), 5);

【3】高斯模糊,让彩虹边缘更柔和过渡

GaussianBlur(img, img, Size(7, 7), 0, 0);

【4】彩虹图像与风景图混合叠加(使用泊松融合效果更佳)

addWeighted(srcImg, 1.0, img, 0.2, 0, dst);

换几张图片测试:

到此这篇关于OpenCV自动给图片添加彩虹特效的实现示例的文章就介绍到这了,更多相关OpenCV自动给图片添加彩虹内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部