OpenCV之怀旧色、冰冻滤镜、熔铸滤镜

怀旧色

源码:

复制代码
void huaijiu(Mat& src,Mat& dst)
{
    for (int h = 0;h < src.rows;h ++)
    {
        uchar *d1 = src.ptr<uchar>(h);
        uchar *d2 = dst.ptr<uchar>(h);
        for (int w = 0;w < src.cols;w ++)
        {
            int w3 = 3*w;
            int r =  d1[w3 + 2];
            int g = d1[w3 + 1];
            int b = d1[w3 + 0];
            int AR =(int)(0.393*r + 0.769*g + 0.189*b);
            int AG =(int)(0.349*r + 0.686*g + 0.168*b);
            int AB =(int)(0.272*r + 0.534*g + 0.131*b);
            AR = AR > 255 ? 255 : AR;
            AG = AG > 255 ? 255 : AG;
            AB = AB > 255 ? 255  : AB;

            d2[w3 + 2] = AR;
            d2[w3 + 1] = AG;
            d2[w3 + 0] = AB;
        }
    }

}

原图:

冰冻滤镜

复制代码
void bingdong(Mat& src,Mat& dst)
{
    for (int h = 0;h < src.rows;h ++)
    {
        uchar *d1 = src.ptr<uchar>(h);
        uchar *d2 = dst.ptr<uchar>(h);
        for (int w = 0;w < src.cols;w ++)
        {
            int w3 = 3*w;
            int r =  d1[w3 + 2];
            int g = d1[w3 + 1];
            int b = d1[w3 + 0];

            int AR =(r - b - g)*3/2;
            int AG =(g - b - r)*3/2;
            int AB =(b - r - g)*3/2;

            AR = AR > 255 ? 255 : AR;
            AG = AG > 255 ? 255 : AG;
            AB = AB > 255 ? 255  : AB;

            d2[w3 + 2] = AR;
            d2[w3 + 1] = AG;
            d2[w3 + 0] = AB;
        }
    }
}

熔铸滤镜

复制代码
void rongzhu(Mat& src,Mat& dst)
{
    for (int h = 0;h < src.rows;h ++)
    {
        uchar *d1 = src.ptr<uchar>(h);
        uchar *d2 = dst.ptr<uchar>(h);
        for (int w = 0;w < src.cols;w ++)
        {
            int w3 = 3*w;
            int r =  d1[w3 + 2];
            int g = d1[w3 + 1];
            int b = d1[w3 + 0];

            int AR = r * 128 / (b+g+1);
            int AG = g*128 / (b+r+1);
            int AB = b*128 / (r+g+1);

            AR = AR > 255 ? 255 : AR;
            AG = AG > 255 ? 255 : AG;
            AB = AB > 255 ? 255  : AB;

            d2[w3 + 2] = AR;
            d2[w3 + 1] = AG;
            d2[w3 + 0] = AB;
        }
    }
}
相关推荐
BullSmall10 分钟前
汽车HIL测试:电子开发的关键验证环节
人工智能·机器学习·自动驾驶
woshihonghonga11 分钟前
停止Conda开机自动运行方法
linux·人工智能·conda
海洲探索-Hydrovo2 小时前
TTP Aether X 天通透传模块丨国产自主可控大数据双向通讯定位模组
网络·人工智能·科技·算法·信息与通信
触想工业平板电脑一体机2 小时前
【触想智能】工业安卓一体机在人工智能领域上的市场应用分析
android·人工智能·智能电视
TechNomad3 小时前
十一、OpenCV中图形的绘制
opencv
墨染天姬4 小时前
【AI】数学基础之矩阵
人工智能·线性代数·矩阵
2401_841495645 小时前
【计算机视觉】基于复杂环境下的车牌识别
人工智能·python·算法·计算机视觉·去噪·车牌识别·字符识别
倔强青铜三6 小时前
苦练Python第66天:文件操作终极武器!shutil模块完全指南
人工智能·python·面试
倔强青铜三6 小时前
苦练Python第65天:CPU密集型任务救星!多进程multiprocessing模块实战解析,攻破GIL限制!
人工智能·python·面试
强哥之神6 小时前
浅谈目前主流的LLM软件技术栈:Kubernetes + Ray + PyTorch + vLLM 的协同架构
人工智能·语言模型·自然语言处理·transformer·openai·ray