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自動給圖片添加彩虹特效的實現示例的文章就介紹到這瞭,更多相關OpenCV自動給圖片添加彩虹內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: