OpenCV-美食—鲜美滤镜

简介: OpenCV-美食—鲜美滤镜

实现原理

      之前筹备了几款图像处理的工具函数,就是为了实现一些定义好的滤镜特效。这几个函数分别为饱和度(Saturation)、明度(Lightness)、对比度(Contrast)、锐化(Sharpen)、阴影(Shadow)、高光(HighLight)、色温(ColorTemperature)。


      本文展示的是鲜美滤镜,大家可以根据自身喜好,适当合理地调整滤镜参数。美食-鲜美滤镜参数为:


  1. 饱和度+25;
  2. 明度+10;
  3. 对比度+30;
  4. 锐化+30,type为0;
  5. 阴影-5;
  6. 高光+15;

      鲜美滤镜重点在于“提鲜”:通过提高饱和度使美食色彩更鲜艳;明度增加有助于图像整体提亮;对比度增强,是为了突出美食和桌面等背景色的差异;锐化增加,可使得美食纹路细节更丰富;阴影减少是为了使美食和阴影处形成更强烈的对比;高光增加是为了背景提亮。


      工具函数链接如下。

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("chicken.jpg");
  cv::Mat sat = Saturation(src, 25);
  cv::Mat lig = Lightness(sat, 10);
  cv::Mat con = Contrast(lig, 30);
  cv::Mat sha = Sharpen(con, 30, 0);
  cv::Mat sdo = Shadow(sha, -5);
  cv::Mat hig = HighLight(sdo, 15);
  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;
}

测试效果

图1 鸡翅原图

图2 鸡翅滤镜图

图3 牛排原图

图4 牛排滤镜图

图5 意面原图

图6 意面滤镜图

  如果大家有更好的参数配置,欢迎评论区分享,看看谁的滤镜更“鲜美”。

      如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

文章知识点与官方知识档案匹配,可进一步学习相关知识

相关文章
|
7月前
|
C++ 计算机视觉
OpenCV-人像—酷感冷艳滤镜
OpenCV-人像—酷感冷艳滤镜
|
7月前
|
C++ 计算机视觉
OpenCV-风景—天空滤镜
OpenCV-风景—天空滤镜
|
7月前
|
C++ 计算机视觉
OpenCV-美食—巧克力滤镜
OpenCV-美食—巧克力滤镜
|
7月前
|
C++
OpenCV-怀旧色滤镜
OpenCV-怀旧色滤镜
|
1天前
|
计算机视觉
OpenCV图像运动模糊
OpenCV图像运动模糊
8 0
|
1天前
|
计算机视觉
OpenCV图像阈值
OpenCV图像阈值
5 0
|
1天前
|
计算机视觉
OpenCV图像混合
OpenCV图像混合
7 0
|
1天前
|
计算机视觉 Python
OpenCV为图像扩边(填充)
OpenCV为图像扩边(填充)
6 0
|
1天前
|
计算机视觉 Python
轻松掌握opencv的8种图像变换
轻松掌握opencv的8种图像变换
|
1天前
|
算法 计算机视觉
【OpenCV】- 图像修复
【OpenCV】- 图像修复