本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

opencv滤镜-冰冻滤镜

冰冻滤镜

通过以下公式,对图像rgb三个分量进行调整,可以到达冰冻的滤镜特效。
冰冻滤镜公式.png

原图

代码实现

// frozen-filter.cpp : 冰冻滤镜
// @mango

#include<iostream>
#include<cmath>
#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>(std::abs(img.at<cv::Vec3b>(i, j)[0] - img.at<cv::Vec3b>(i, j)[1] - img.at<cv::Vec3b>(i, j)[2]) * 3 >> 2);// blue
            img.at<cv::Vec3b>(i, j)[1] = cv::saturate_cast<uchar>(std::abs(img.at<cv::Vec3b>(i, j)[1] - img.at<cv::Vec3b>(i, j)[0] - img.at<cv::Vec3b>(i, j)[2]) * 3 >> 2);// green
            img.at<cv::Vec3b>(i, j)[2] = cv::saturate_cast<uchar>(std::abs(img.at<cv::Vec3b>(i, j)[2] - img.at<cv::Vec3b>(i, j)[0] - img.at<cv::Vec3b>(i, j)[1]) * 3 >> 2);// red
        }
    }
    cv::imshow("冰冻滤镜", img);

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

本文由芒果浩明发布,转载请注明来源。
本文链接:https://mangoroom.cn/opencv/frozen-filter.html

冰冻滤镜效果.png


 继续浏览关于 opencv图像处理图像处理算法滤镜冰冻 的文章

 本文最后更新于:2019/07/03 11:31:01,可能因经年累月而与现状有所差异

 引用转载请注明:芒果小屋 > opencv,滤镜 > opencv滤镜-冰冻滤镜