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;
        }
    }
}
相关推荐
听风吹等浪起34 分钟前
第30章:MobileNetV3全家桶实现MRI脑肿瘤四分类(含Streamlit网页推理+Mermaid结构图)
人工智能·分类·数据挖掘
如若1231 小时前
TRACER 论文解读与复现:面向 ICU 长时程患者监测的多模态 Harness 架构、时序证据建模与工具增强推理
人工智能·深度学习·计算机视觉
深蓝AI3 小时前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落245 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区7 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发8 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
飞猫的边缘AI8 小时前
英特尔量子生意
人工智能·量子计算·边缘ai
深蓝AI8 小时前
桌面 Agent 缺的不是视觉:Vercel 开源 agent-desktop,用无障碍树 ref 替代截图坐标
人工智能·程序员
镜子AI9 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
向哆哆9 小时前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪