熔铸滤镜
与怀旧滤镜类似,通过对图像rgb三个分量的调整变化,可以得到熔铸滤镜的效果。以下是调整的公式:
代码实现
// casting-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)[0] = cv::saturate_cast<uchar>(128 * img.at<cv::Vec3b>(i, j)[0] /( img.at<cv::Vec3b>(i, j)[1] + img.at<cv::Vec3b>(i, j)[2] + 1));// blue
img.at<cv::Vec3b>(i, j)[1] = cv::saturate_cast<uchar>(128 * img.at<cv::Vec3b>(i, j)[1] /( img.at<cv::Vec3b>(i, j)[0] + img.at<cv::Vec3b>(i, j)[2] + 1));// green
img.at<cv::Vec3b>(i, j)[2] = cv::saturate_cast<uchar>(128 * img.at<cv::Vec3b>(i, j)[2] /( img.at<cv::Vec3b>(i, j)[0] + img.at<cv::Vec3b>(i, j)[1] + 1));// red
}
}
cv::imshow("熔铸滤镜", img);
cv::waitKey(0);
return 0;
}
滤镜效果
本文由芒果浩明发布,转载请注明来源。
本文链接:https://mangoroom.cn/opencv/casting-filter.html