千家信息网

OpenCV如何自动给图片添加彩虹特效

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,小编给大家分享一下OpenCV如何自动给图片添加彩虹特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现步骤【1】准备一
千家信息网最后更新 2024年10月19日OpenCV如何自动给图片添加彩虹特效

小编给大家分享一下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如何自动给图片添加彩虹特效"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0