作者:Steven
著作權宣告:著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明出處
實作原理
之前籌備了幾款影像處理的工具函式,就是為了實作一些定義好的濾鏡特效,這幾個函式分別為飽和度(Saturation)、明度(Lightness)、對比度(Contrast)、銳化(Sharpen)、陰影(Shadow)、高光(HighLight)、色溫(ColorTemperature),
今天展示的是巧克力濾鏡,大家可以根據自身喜好,適當合理地調整濾鏡引數,美食-巧克力濾鏡引數為:
- 飽和度+20;
- 明度-15;
- 對比度+35;
- 銳化+10,type為0;
- 陰影+25;
- 高光-5;
之所以這么設計,是考慮到巧克力的顏色普遍為深棕色,通過提高飽和度使棕色更鮮明;明度降低可以使影像整體偏暗,若太亮會使巧克力發白;對比度增強,是為了突出巧克力和桌面等背景色的差異;銳化增加,可使得巧克力紋路細節更豐富;陰影增加是為了使得巧克力深色區域提亮,不然整個影像暗蒙蒙的很壓抑;高光減少是為了背景光的干擾,
工具函式鏈接如下,
功能函式鏈接
1.飽和度:OpenCV-影像飽和度_翟天保的博客-CSDN博客
2.明度:OpenCV-影像明度_翟天保的博客-CSDN博客
3.對比度:OpenCV-影像對比度_翟天保的博客-CSDN博客
4.銳化:OpenCV-影像銳化_翟天保的博客-CSDN博客
5.陰影:OpenCV-影像陰影調整_翟天保的博客-CSDN博客
6.高光:OpenCV-影像高光調整_翟天保的博客-CSDN博客
C++測驗代碼
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
#define max2(a,b) (a>b?a:b)
#define max3(a,b,c) (a>b?max2(a,c):max2(b,c))
#define min2(a,b) (a<b?a:b)
#define min3(a,b,c) (a<b?min2(a,c):min2(b,c))
// 飽和度
cv::Mat Saturation(cv::Mat src, int percent);
// 明度
cv::Mat Lightness(cv::Mat src, float percent);
// 對比度
cv::Mat Contrast(cv::Mat src, int percent);
// 影像銳化
cv::Mat Sharpen(cv::Mat input, int percent, int type);
// 影像陰影選取
cv::Mat Shadow(cv::Mat input, int light);
// 影像高光選取
cv::Mat HighLight(cv::Mat input, int light);
// 色溫調節
cv::Mat ColorTemperature(cv::Mat input, int percent);
int main()
{
cv::Mat src = imread("chocolate.jpg");
cv::Mat sat = Saturation(src, 20);
cv::Mat lig = Lightness(sat, -15);
cv::Mat con = Contrast(lig, 35);
cv::Mat sha = Sharpen(con, 10, 0);
cv::Mat sdo = Shadow(sha, 25);
cv::Mat hig = HighLight(sdo, -5);
imshow("original", src);
imshow("Saturation", sat);
imshow("Lightness", lig);
imshow("Contrast", con);
imshow("Sharpen", sha);
imshow("Shadow", sdo);
imshow("HighLight", hig);
waitKey(0);
return 0;
}
測驗效果
如果大家有更好的引數配置,歡迎評論區分享,看看誰的濾鏡更適合巧克力,
如果文章幫助到你了,可以點個贊讓我知道,我會很快樂~加油!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301622.html
標籤:其他
上一篇:數字影像處理:區域直方圖處理(Local Histogram Processing)
下一篇:OpenCV-美食—鮮美濾鏡
