作者:翟天保Steven
版权声明:版权归作者所有。如需商业转载,请联系作者授权。非商业转载请注明出处
实施原则
之前筹备了几款图像处理的工具函数,就是为了实现一些定义好的滤镜特效。这几个函数分别为饱和度(Saturation)、明度(Lightness)、对比度(Contrast)、锐化(Sharpen)、阴影(Shadow)、高光(HighLight)、色温(ColorTemperature)。
本文展示了适合人像的酷炫美艳滤镜。您可以根据自己的喜好,适当合理地调整过滤器参数。 Portrait-Cool Glorious 滤镜参数为:
- 对比度+25;
- 明度-30;
- 高光+20;
- 锐化+50;
- 饱和度+20;
- 色温-20;
通过增加对比度,皮肤与背景分离;降低亮度,增加高光可以使人处于明亮状态;锐化是改善服装的细节;增加饱和度,使肤色更饱满;最后适当降低色温,提高冷色。程度。
工具功能链接如下。
功能功能链接
1.饱和度:OpenCV-图像饱和度_翟天保的博客-CSDN博客
2.明度:OpenCV-图像明度_翟天保的博客-CSDN博客
3.对比度:OpenCV-图像对比度_翟天保的博客-CSDN博客
4.锐化:OpenCV-图像锐化_翟天保的博客-CSDN博客_opencv图片锐化
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 HighLight(cv::Mat input, int light);
// 色温调节
cv::Mat ColorTemperature(cv::Mat input, int percent);
int main()
{
cv::Mat src = imread("3.jpg");
cv::Mat con = Contrast(src, 25);
cv::Mat lig = Lightness(con, -30);
cv::Mat hig = HighLight(lig, 20);
cv::Mat sha = Sharpen(hig, 50, 0);
cv::Mat sat = Saturation(sha, 20);
cv::Mat col = ColorTemperature(sat, -20);
imshow("original", src);
imshow("Saturation", sat);
imshow("Lightness", lig);
imshow("Contrast", con);
imshow("Sharpen", sha);
imshow("HighLight", hig);
imshow("ColorTemperature", col);
waitKey(0);
return 0;
}
测试效果
图1 原图1
图2 滤镜效果1
图3 原图2
图4 滤镜效果2
图5 原图3
图6 滤镜效果3
如果你有更好的参数配置,欢迎在评论区分享,给你的女朋友一试~
如果文章对你有帮助,可以给我点个赞告诉我,我会很开心的~加油!
版权声明:本文为博主翟天保Steven原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/zhaitianbao/article/details/123268566