opencv滤镜-怀旧滤镜

怀旧滤镜

通过对rgb三个颜色分量的调整可以将照片处理成一种老照片的怀旧风格。调整的公式如下

怀旧滤镜公式.png

filter-img

代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// vintage-filter.cpp : 怀旧滤镜
// @mango

#include <iostream>
#include<opencv2/opencv.hpp>



int main()
{

	cv::Mat img = cv::imread("fruit.jpg");

	for (size_t i = 0; i < img.rows; i++)
	{
		for (size_t j = 0; j < img.cols; j++)
		{
			
			img.at<cv::Vec3b>(i, j)[1] = cv::saturate_cast<uchar>(0.349*img.at<cv::Vec3b>(i, j)[2] + 0.686*img.at<cv::Vec3b>(i, j)[1] + 0.168*img.at<cv::Vec3b>(i, j)[0]);// green
			img.at<cv::Vec3b>(i, j)[2] = cv::saturate_cast<uchar>(0.393*img.at<cv::Vec3b>(i, j)[2] + 0.769*img.at<cv::Vec3b>(i, j)[1] + 0.189*img.at<cv::Vec3b>(i, j)[0]);// red
                        img.at<cv::Vec3b>(i, j)[0] = cv::saturate_cast<uchar>(0.272*img.at<cv::Vec3b>(i, j)[2] + 0.534*img.at<cv::Vec3b>(i, j)[1] + 0.131*img.at<cv::Vec3b>(i, j)[0]);// blue
		}
	}
	cv::imshow("怀旧滤镜", img);

	cv::waitKey(0);
	return 0;
}

运行代码效果

怀旧滤镜效果.png


本文由芒果浩明发布,转载请注明来源。 本文链接:https://blog.mangoeffect.net/opencv/vintage-filter.html


微信公众号